基于AuiSu_i_平台的JF开_发研究_第1页
基于AuiSu_i_平台的JF开_发研究_第2页
基于AuiSu_i_平台的JF开_发研究_第3页
基于AuiSu_i_平台的JF开_发研究_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 2 0 8 0 卷 8年爹 青 期 年 2 月 计算机技术与发展 【 ( ) M I UTER TE( HNOL( ; Y ANI )DEVEl ) r ,M ENT V O I I 8 NO 2 Fe b 2 ( m8 基 于 A p u s i c S t u d i o平台的 J S F开发研 究 吴教育。 , 熊君丽 , 朱小平 , 钟 雷2 , 张 勇2 ( 1 广东科学技术职业学院 计算机工程技术学院, 广 东 珠海 5 1 9 0 9 0 ; 2 深圳市金蝶 中间件有限公 司, 广东 深圳 5 1 8 1 0 0 ) 摘要: J a y & S e r v e r F a c e s ( J S F ) 是一种新兴的 We b 表现层框架, 它超越了 J a v a S e r v e r P a g e s( J S P ) , 在页面内提供了真正的服 务器端事件处理 , 并提供了基于组件的、 可以跨多个服务器请求生存的页面。A p u s i c S t u d i o作为 J 2 E E的集成开发平台, 对 J S F实现了全面支持, 包括界面导航、 拖放式设计、 事件管理机制, 以及部署文件的自动生成等 , 另配以语法加亮 、 代码导 航 、 断点调试 、 可视化的设计等辅助功能。 关键词: J S F ; A p u s i c S t u d i o ; 事件管理机制; 定制 UI 组件 中图分类号 : 1 1 l 文献标识码 : A 文章编号: 1 6 7 3 6 2 9 X ( 2 0 0 8 ) 0 2 0 1 0 8 0 4 J S F De v e l o p me n t a n d Re s e a r c h o n Ba s i s o f Apu s i c S t u di o Pl a t f o r m WU J i a o - y u , XI ONG J u n 1 i, Z HU Xi a o - p i n g , Z HONG L e i , Z HANG Yo n g 2 ( 1 S c h o f E n g a n d T e c h n 。 , G u a n g d o n g I n s t 。 f o r Te c h n , Z h u h a i 5 1 9 0 9 0 , C h i n a ; 2 S h e mh e n Ki n g d e e Mi d d l e w a r e C o , L t d , S h e mh e n 5 1 8 1 0 0 , C h i na) A b s t r a c t : J a v a S e r v e r F a c e s ( J S F )is a n e w k in d f r a me o f we b p r e s e n t a t i o n h e x c e e d s J a v a S e r v e r P a g e s ( J S P )a n d p mvi d es g e n u i n e i n c i d e n t p r o c e s s b a s e don s e r v e ri nt h e p a g e , a l s ot h e p a g e o o mp o n e n t b a s e d o fwh i c h r e q u ests c 叭 s u r v i v a l 8 c 。 s smu l t i p l elv e r $ Be in g a s t a g eo f i n t e r g r a t io n a n d d e v e lo p me n t p la t f o r m f o r J 2 E E, Ap u s i c S t u d ioimp l e me n t s a x a l e t e s u p p o r t for J S F , in c l u d i ng i n t e r f a c e n a v i g a t io n, d r a ga n d d r o p d e s i g n i n c i d e n t ma n ag e me n t me c h a n i s m a n d a u t o ma t ic g ene r a t io n o f d e p l o y me n t d o c t ma e nt , f u r t h e r mo r e a s s i s t a nt f u n c t io n s in c l u d i ng e x p r e s s io n h i g h l igh t ,c o d e n a v ig a t i o n ,b r e a kpoi n t d e b u g g i ng , v i s u a l d e s ign and o n K e y w o c d s : J S F; A p u s i c S t u d io ; i n c i d ent ma n a g e me n t m e c h a n is m; c u s t a m UI c o mp o n ent 0 前言 J 2 E E下一代规范 J a v a E E 5 0中, S U N 已经提议 将 J S F ( J a v e S e r v e r F a c e s ) 作为 构建 J a v a We b的首选 技 术。J 2 E E社区将通过 J S F来统一 We b 应用的开发模 式与方法。J S F通过提供模型一视图 一控制器设计模 式的一个简洁实现, 在不牺牲开发能力和灵活性的前 提下提供 高效 的 以组件 为 中心 的 开发 , 解 决 了 J a v a We b 开发的许多历史 问题。此外 , J S F是一 种 J a v a 标 准, 因此多个软件供应商将继续提供始终高效的开发 环境, 这些开发环境毫无疑问将达到或很可能超过专 有的可视化 开发环境。 基于 J S P S e r v l e t 的开发模型, J S F通过提供下列 特性解决了 We b开发过程 中的许多实际问题 : 可扩 收稿日期 : 2 0 0 70 5 0 8 基 金项 目: 粤港关键领域重点突破招标项 目( A1 0 2 0 7 0 0 8 ) 作者简介: 吴教育( 1 9 6 4一) , 男 江西都昌人, 硕 上, 副教授, 研究方 向为软件 1 : 程 、 计算机安全与维护 。 展、 可定制的丰富的 UI 组件, 方便的页面导航 , 良好 的事件 响应机 制 , J a v a B e a n管理 , 表单数据 的 自动转换 与验证 , 方便的错误处理, 国际化支持等等。 相 对 于 提 高 用 户 体 验 的 A j a x( A s y n c h ron o u s J a v a S c fi p t a n d X ML ) 技术来说, J S F保留了它的优势, 并且减少了数据传输量, 保持了系统的敏捷高效性 , 同 时提供了可扩展的框架级解决方案u J 。 业 界常见 的开发 J S F的组件及开发 构建 J S F应 用 的辅助工具普遍存在着一些不足之处, 是常规的实现 机制所带来的问题。这些缺陷可能对 J S F成为 日后 we b 应 用主流 开发技 术带 来一定 的负面影 响 , 如 : 运 行期性能并不是非常理想; 缺少良好的工具支持等。 作为 J C P组织成员, A p u s i c S t u d io的 J S F平台依 赖于 We b T o o ls P 1 a fr o ml ( WT P ) 以及 E c l i p J D T, 对 J S F技术进行 了全面支持。包括管理 J S F特定的配置 文件, 编辑 H TM I , j s P和 X ML文件, 并提供有语法加 亮 、 代码 导航 等辅助功能。 维普资讯 第 2期 吴教育等 : 基 j : N p u s i c S m d k 平 台的 J S F圩发研究 1 0 9 l 设计中的辅助功能支持 1 1 页面导航功能 A p u s i c S t u d i o 增加 了对 J S F配置 文件 f a c e s c o n f i g 1 1 l 进行编辑 和图形化设计 的编辑 器 , 这个编辑 器 包含 了三个标 签 : 页面导航标 签 , Ma n a g e d B e a n 标 签 , 源代码标签 。 页面导 航标签 中提供 了对 J S F页 面流转的设 置 , 可以从左边 的导航器拖 动页面到 编辑器 , 制定 页面 导 航方 向以及导航规则 , 并可 以通过右键 菜单 和属性 视 图来 编辑页面或者导航线 。在 J S F中不仅使用 了 P O J O技术 , 而且 还使用 了类似 S p r i n g的控 制反转 ( I o C ) ( 或称 为依赖注入 一I ) I ) 技 术 , 在 J S F的 B a c k i r i g B e a n 中, 可以把视图所需要的数据和操作放进一个 B a c k i n g B e a n 中。同时得 益 于 J S F使用 的 D I 技 术 , 可 以在 配 置文件 中初始化 Ma n a g ed B e a n , 同时也 可 以通 过这样 的技 术 很 方便 地 和使 用 类 似 技 术 的 S p r i n g进 行 整 合 【 引。Ma n a g e d B e a n标签 提供 对 Ma n a g ed B e a n的设 置, 包括 : 名称( 将在 we b页面中被使用) 、 引用类、 作 用域。源代码标签提供对应用配置文件 f a c e s c o n f i g x ml 源码的修改并且 自动与其余两个编辑器保持 同 步。A p u s i c S t u d i o 提供了非常丰富的标签库, 通过这 些 标 签 库 , 可 以 生 成 各 种 客 户 端 模 型 , 如 H T ML , WML, X ML以及 J a v a S c r i p t 等。通过 这些 标 签 , 很 容 易建立大规模的客 户端模型 , 并 由这些标 签 自动处 理 客户端 请求。如图 l中显示 标签库 J S F C o r e , J s F F a c e l e t S , J S F HTML 2 。 J S F , 1 S t 以及 J sI 、 L的拖拉式 组件 。通 过拖拉 操怍将 J 标签工 具栏 中的组件加入页 面代码 中。使 用属性 视图图形化设置标签属性值 , 值绑定时 可以选择 Ma n a g e d B e x a n中属性 并且 实现 数类 型过 滤 匹配。即使前 台 J S I 页面与 Ma n a g e d B e a n之 间的事 件 驱动 也可 以 通过代码导航来实现( 见图 1 ) 。 2 J s F事件管理机制 J S F应用是事件 驱动 的表现 层框 架 , 是 一种 事件 驱动型 的组件 模型引 3。它既符合模型 一视图 一控制器 ( MV C ) 模式又遵循 J a v a 2事 件模 型 , 该模 型 中涉 及三 个参与者即事件 源 、 事件 对象和事件 监 听器。事件 源 通过广播将发生的事件对象发给感兴趣的事件监听 器。在 J S F 应 用 中, UI l n p u t 或 UI Comm a n d 组件 都可 以作为事件源。 J S F的事件 可 以分 成两 种类 型 : 阶段 事件 ( P h a se E v e n t ) 和 F a c e s 事件 ( F a c e s E v e n t ) 。 阶段事 件用来 处 理请求生命周期的特定阶段中发生的事件。F a c es事 件则 是负责处理 组件事 件的 。因为 we b 通 过没有状 态的 H T T P协议来进 行请求和响应 , 所 以 J S F使用 阶 段事件 来处 理。J S F生命 周期 中有 6个 阶段 : R es t o r e Vi e w, Ap p l y Re q u e s t u e , Pr o c e s s Va l i d a t o r s , Up d a t e Mo d e l Va l u e 8 , I n v o k e Ap p l i c a t i o n , R e n d o r Resp o n s e o阶 段事件 监听 器需在 配置文 件定 义 , 实 现 P h a L i s t e n e r 接 口的 a f t e r P h a s e , b e f o r e P h a S e , g e t P h a s e l d三 个 方 法。 a h e r P h a s e 在执行某个 阶段 之后被调用 , b e f o r e P h a se方 图 1 A p u s i c S t u d io J S F设计 嚣 1 2 使用拖放式组件 Ap u s i c S t u d i o 提供 了丰富的町自 定义的 H T ML , 法 则反 之 ,g e t P h a sel d被 J S F调 用 以决定在哪个 阶 段执行它们。 Fac e s 事 件 可 以分 成 两种 类 型 : 值 变 事 件 ( Va l u e C h a n g e E v e n t )和 动 作 事 件 ( A c t io n E v e n t ) 。值变事件 关注的是组件属性 值的 变 化 ( 例 如展 开树 节 点 , 改变 输 入 栏 中 的 内 容 等 等 ) 。事 件 监 听 器 类实现 V a l u e C h a I Ne L i s t e n e r接 口监听发生的值变事件, 触发该接 口的 V a l u e L a n g e d 方法 事件源 l l l n p u t 组 件嘤实现 监听 , 可以 维普资讯 J 【 ( 计 算机技 术 j发展 第 1 8卷 拖拉放置 J S F r e 标 签库 中 v a l u e C h a n g e I i s t e n e r 际 签成该组件标 签的子标 签 , 对 t y p e属性进 行设 置 , 如 图 2所示 。 动作事件主要关注组件的激活, 其实就是组件的 状态( 例如按钮点击, 超链接点击等等) 。同值变事件 类似, 事件监听器类实现 A c t i o n L i s t e n e r 接口监听发生 的值变事 件 , 触 发该 接 口的 p r o c e s s A c t i o n方 法。事 件 源 U I C o n m m n d 组件要实现监听, 使用 J S F C o r e 标签 库 中 a c t i o n L i s t e n e r 标签 , 对 t y p e 属性进行 设置。 的标记。所有 j S F组件的基类是 UK o mpon e n t 。在开 发 自己的组 件时 , 需要继 承 Ul C o mpon e n t B a , 它扩 展 了 Uf ( o mpon e n t 并 提 供 了 U I C o mpon e n t 中所 有抽 象 方法的默认 实现 , 另需保 存组 件状态且 在 f a o e s mn f i g x l 1 l 登记组件 。然后 定 义渲染器 或者 内联地 实现 它 , 覆盖 e n c o d e 和 d e c o d e 方 法 , 用 f a c e s c o n f i g x m l 登记渲染器。最后创 建定制标记 , 继承 Ul C o mpon e n t T a g , 返 回渲染器 类型 和组件类型 , 设 置可能使用 J S F 表达式的属性 l 4 J 。 图 2 值 雯事件设 计 对于简单 的封装业务逻辑的 j a v a b e a n , 可以无需 构造复杂繁琐的监听器类, 直接将 UI O u t p u t 组件与 j a v a b e a n的方法绑定实现监听。 3 定制 UI 组件 J S F拥有一个与 A WT的 G UI 组件模 型类 似的组 件模型, 可以用 J S F创建可重用组件和复合组件。设 计内容非常简洁, 由三个因素构成: 接近于组件功能的 标准 UI C o mpon e n t 的子 类 、 呈现子 类 , 以及用 于驱 动 呈现响应阶段 的标记处理类 。并在标记库描述符文件 和包含组件相关 信息 的元数据文件 中说明定制组 件 引 。 组件 的功能通常围绕着 两个动作 : 解码 和编码数 据。解码把进入的请求参数转换成组件的值, 在 A p p l y R e q u e s t Va l u e 阶段执 行。编码在 R e n d e r R e s p o n s e 阶段把组件的当前值转换成对应的标记。J S F框架提 供了两个选项用于编码和解码数据。使用直接实现方 式 , 组件 自己实现解码 和编码。使用 委托实现方式 , 组 件委托渲染器进行编码 和解码。如 果选择委托 实现 , 可以把组件与不同的渲染器关 联 , 会在 页面上 以不 同 的方式渲染组件。因此 J S F组件由两部分构成: 组件 和渲染器。J S F组件类定义 Ul 组件的状态和行为, 渲 染器定义如何从请求读取组件、 如何显示组件通 常通过 H T MI 渲染。渲染器把组件的值转换成适 当 呈现子 类 有 两个 作 用 。第一 , 呈现程序负责 发送适当的 H T ML程序 段 , 该程序 段能在客户端 中呈 现组 件。通 常 情况 下 这 个 , 程序 段 由一 些 适 于 呈 现 整 个 We b 浏览 器的 H T ML标 签组 成。此 J S F生 存 周 期称 作编 码 阶段 或呈 现 一 响应 阶 段。该 响应 阶 段还 能发 送增 强客 户端 交互性的 J a v a S c ri p t 代码。呈现程序的第二个作用是 解析来 自客户端的数据, 从而对服务器端的组件状态 进行更新( 如用户在文本字段输入 的文本 ) 。标准呈现 程序软件包具有强制 性, 但也可以提供其他呈现程序 软件包 , 用于提供可替换的客户端表示法或 s 、 之类 的语 言。通过检验组 件的连接 属性 , 您实 现的呈 现程 序将选择在 H T ML页面中发送的 C S S 样式。 A p u s i e S t u d i o 支持 定制 U I 组件 功 能, UI 组件 可 以采用 自我呈现和呈现委托两种实现方式。J S F引擎 能正常解码和编码定制 UI 组件。 4 容器级别的 Aj a x支持 A j a x 提供与服务器异 步通信 的能 力 , 从而使 用户 从请求佣 应 的循 环 中解 脱 出来。A j a x的核 心是 J a v a S c r i p t 对象 X m ff t t t p R e q u e s t , 该对 象是一种 支持异 步请求的技术。J S F有三个主要的 A j a x 集成策略。一 是把 a j a x 支持加到现有组件中, 二是把 A j a x支持直 接集成到 J S F组件中, 三是对现有 A j a x控件封装成一 个 J S F组件。A p u s i c 采用 J S F容器处理 A j a x请求。 F a c e s R e q u e s t 发出一个 A j a x请求, 该请求到达服务器 端以后, A p u s i c 服务器端所产生的 F a c e s R e s 1 ) 0 n s e的 ( ) a n t e n t T y p e不 再 是t e x t h t m l , 而 是 了t e x t j a v a - r i p t 。同时, 响应的主体也不再是 h t ml 文本 , 而 是堆 s c r i p t 脚本 。浏览器 在接 收到响应 以后 , 再 也 维普资讯 第 2 期 吴教育等 : 基于 A p u s i c S t u d i o 平 台的 J S F开发研究 不需要进行整个页 面的渲染 与刷新 , 而仅仅需 要执行 这段脚本内容, 将页面的控件进行更新即可l_ 4 J 。 而且所有的标准组件都支持 A j fi x , 对于不支持 A j fi x的第三方组件, 可以使用的标 签转换 。A p u s i c J S F引擎实现了一个 A j fi x R e n d e r Ki t 。 在 H T ML文档中嵌入 J a v a S c r i p t 代码来实现 A j a ) ( 特 性呈现 , 而替换 R e n d e r K i t 只需要修改配置文件 。 A p u s i c J S F实现 了一 个 的标 签 , 用 于接受发送和完成 A j fi x请求时触发的事件。缺省的 实现是在发送 A j fi x请求之前显示一个 H TML片段, 在完成 A j fi x 请求之后显示另一个 H T ML片段。开发 人员可以设置 标 签 的 o n S t a r t 和 o n S t o p 属性, 来自定义修改执行的 J a v a S c r i p t 代码以实现更 复杂的效果。此外, 还实现了一个 标 签 , 能采用 R P C( R e m o t e P r o c e d u r e C a l 1 ) 方式 调用 服务 器端 J a v a 对象的方法【 5 l 。 5 其它特性 A p usi c J S F还包含其 它特性 , 如控件 的换肤 功能 , 控件对 I E 、 Mo z i l l a ( F i r e f o x ) 、 O p e r a 等多浏览器的支持, 以及强大的布局功能等 5 l 。 6 结束语 J S F事实上与 MV C模式有所不同, 它是 We b开 发。编程人员的开发理念更为轻松。该模型使应用程 序开发人员能够设计应用程序的页面流。与 S t r u t s 的 ( 上接第 1 0 7页) 以达到效率和准确性的平衡。 参考文献: 1 C a s a t i F , L l n i c k i S , J i n L, e t a 1 A d a p t i v e a n d D y r m i c S e n ,i c e C o mp o s i t i o ni n e F lo w C P r c x ti n g s o f t h e 1 2 t h I n t e r n a 。 t i o n a l Co n f e r e n c eo nA d v a n c e dI n f o r ma t i o nS y s t e msE n g i n e e r i n g , 2 0 o 0 L ond o n: S p fi n g e r Verl a g , 2 0 0 0: 1 33 1 2 Z e n gL , B e n a t a l l a hB , N g u y e n P , e t a 1 1 g F l o w: A g e n t b a s e d C r o s s E n t e r p r i s e Wo r k fl o w Ma n a g e m e n t S y s t e m C P r o e e e d i n g so f t h e 2 7 t h I n t 1 C o n f on Ve r y L a l e Da t a B a s e s , 2 0 0 1 I t a l y :Mo r g a n Ka u f ma n n P u b l i s h e r s I n e , 2 0 01 : 6 9 7 6 9 8 3 B c n a t M l a h B , D u m a s M, S h e n g Q T h eS e l f S e r v E n v i r o n n l e t f o r We b S e r v i c e sC o m p o s i t i on J 】 I E E E n t ern e t C o rn p u t i n g , 2 0 o 3 , 7 ( 1 ) : 4 04 8 【 4 】 蒋运承, 汤庸 服务组合 的质量估计模型【 J 】 小型微型 计算机系统 , 2 0 0 6 , 2 7 ( 8 ) : 1 5 1 9 1 5 2 4 5 B e r a r d i D, C a l v ane a e D, G i a c o m o ( e t a 1 A u t o n m t i c C o m p o s i 一 方式类似 , 所有的页面流信息都定义 在 J S F配置 X MI 文件( f a c to c o n f i g x n f1 ) 中 , 而非 硬 编 码在 应 用 程 序 中。这 很大程度简化 了开 发人 员开发 难度 , 简化 了应 用程序的开发 。 J S F自定义组件由j a v a 代码和 t a g库文件组成, 开 发难 度应 该与现 有 I 2 s s组 件开 发 的难 度基本 一 致。 自定义组件通过 自定 义标记构 造页 面 , 在 页面上增 加 组件的数量会对性能有较大的影响。在定 制组件功能 上, A p usi e S t u d i o 可以考虑增加设计导航功能, 并使应 用配置文件与组件功能和呈现设计保持同步。 J S F是可高度抽象、 可扩展的 We b表现层框架级 解决方案。但是受客户端浏览器技术的限制 , 并未达 到无缝、 快捷的用户体验。J S F的组件和事件模型与 A j a x的异步通讯方式相配合, 优势互补, 会使互联网 客户端应用环境界面更加友好便捷。 参考文献: 1 C r a n e D A j a x 实战 M 北京: 人 民邮电出版社 , 2 0 0 6 2 H a r r o p R, Ma e h a c e k J P r o 中文版 M 夏听译 北 京 : 电子工业出版社, 2 0 0 6 【 3 G D A fi r s t l o o k a t J a v a S e r v e r F a c e s , P a r t 1 【 E B O L 2 0 0 21 12 9 h np : www j a v a wo r l d o c r n j a v a wo r ld j w 一 1 1 2 0 0 2 j w一1 1 2 9一j s f h t ml ?p a g e =1 4 K u mi a w a n B J a v a S er v erFac e s P r o g r a m mi n g M 北京 : 清华 大学出版社 , 2 0 o 5 5 袁红 岗 J a v a F w i t h o u t A j a x E B O L 2 0 0 70 52 8 h r t p : www a p u s i c a x n a r t i d e a r t i e l e l 9 h t m t io no f ES e 九 ,i c e S T I la t E x p o r t m i r B e h a v io r C P r o e e e d i n R o f t h e 1 s t I n t l C o n f o n S e r v i c eOr i e n t e d Co mp u t i n g , 2 0 o 3 B e r l in: S p ri n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论