JAVA程序设计中常用的框架技术介绍_第1页
JAVA程序设计中常用的框架技术介绍_第2页
JAVA程序设计中常用的框架技术介绍_第3页
JAVA程序设计中常用的框架技术介绍_第4页
JAVA程序设计中常用的框架技术介绍_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、 湖南科技职业学院ISAS 文档ISAS 题目 Java程序设计中常用的框架介绍专 业 软件技术(CMU方向班 级 CMU3091指 导 教 师 金莲芳小 组 成 员 :麻冲、刘俊、蔣科、张治君、李元钦、刘依玲二一年五月前言面对日趋完善的软件市场,熟练掌握一门使用的软件编程框架成为每个编程人员的必备的技能,那么,面对那么多的框架,你是否会感到无所选择呢,说实在的,我也是如此,但今天我们小组将要向大家介绍的是JAVA 程序设计中常用的几种框架技术,它们分别是:WebWork 框架技术Struts 框架技术Hibernate 框架技术Spring 框架技术JSF 框架技术目录前言 . . 1一W

2、EB W ORK 框架技术介绍:(刘俊) . 3 1:W EB W ORK 框架简介 . 3 2:W EB W ORK 核心概念 . 3 3:W EB W ORK 框架原理与应用 . 4 4:W EB W ORK 实战和技巧 . 55:小结 . . 5 二 S TRUTS 框架技术介绍(李元钦,刘依玲) . 7 什么是S TRUTS . . 7 2. STRUTS 的优点: . 7 3. STRUTS 的缺点: . 8 4. STRUTS1和STRUTS 2的比较. 85. 小结 . . 8 三 H IBERNATE 框架技术介绍:(麻冲) . 9 1: H IBERNATE 定义 . 9 2

3、: H IBERNATE 的作用 . 9 3:H IBERNATE 的应用 . . 9 4:H IBERNATE 在JAVA 中的开发步骤 . . 9 5: H IBERNATE 配置文件 . 10 6:H IBERNATE 的核心接口 . 10 四 S PRING 框架技术介绍:(张治君) . 12 1:S PRING 的起源和背景: . 122.S PRING 简介 . . 123.S PRING 有如下优点: . 124.S PRING 框架 . 135.S PRING 带给我们什么 . 146. 热爱S PRING 的五个理由 . 14 五 JSF 框架技术的介绍(蔣科) . . 15

4、1什么是JSF 框架 . . 152JSF 的设计模式: . . 153各种JSF 框架 . . 164:各种JSF 框架比较 . 16六总结 . . 19一WebWork 框架技术介绍:主讲:刘俊1WebWork 框架简介 work 简洁、灵活功能强大,它是一个标准的Command 模式框架实现,并且完全从web 层脱离出来。Xwork 提供了很多核心功能:前端拦截机(interceptor ),运行时表单属性验证,类型转换,强大的表达式语言(OGNL the Object Graph Notation Language),IoC (Inversion of Control依赖倒转控制)容器

5、等。2WebWork 核心概念WebWork 的三个关键部分1、Actions 。一般一个Action 代表一次请求或调用。在WebWork 中,一般Action 类需要实现Action 接口,或者直接继承基础类ActionSupport 。2、Results 。它是一个结果页面的定义。它用来指示Action 执行之后,如何显示执行的结果。3、Interceptors 。WebWork 的拦截器,WebWork 截获Action 请求,在Action 执行之前或之后调用拦截器方法。3WebWork 框架原理与应用WebWork 原理WebWork 的网站上提供了一个完整的WebWork 架构图

6、。它描述了从客户端的一次请求到最后服务器端响应的的整个执行过程。架构图如下: 此架构图一个分为五个部分,其中五个部分分别有五中不同颜色表示。1、 浅灰色方框。分别代表了客户端的一次Http 请求,和服务器端运算结束之后的一次响应。2、 浅红色方框。表示一次Action 请求所要经过的Servlet filters (Servlet 过滤器)。我们可以看到最后一个filter 就是我们前面介绍的WebWork 的前端控制器。3、 蓝色方框。这是WebWork 框架的核心部分。1) 一次请求到了WebWork 的前端控制器,它首先会根据请求的URL 解析出对应的action 名称,然后去咨询Act

7、ionMapper 这个action 是否需要被执行。2) 如果ActionMapper 决定这个action 需要被执行,前端控制器就把工作委派给ActionProxy 。接着她们会咨询WebWork 的配置管理器,并读取在web.xml 文件中定义的配置信息。接下来ActionProxy 会创建ActionInvocation 对象。3) ActionInvocation是Xwork 原理的(Command 模式)实现部分。它会调用这个Action 已定义的拦截器(before方法 ,Action 方法,Result 方法。4) 最后,看上面流程的图的方向,它会再执行拦截器(after 方

8、法),再回到Servlet Filter 部分,最后结束并传给用户一个结果响应。4、 靛色方框。这是拦截器部分,在上面的拦截器章节我们已经有了详细的介绍。5、 黄色方框。这是我们在开发Web 应用时,需要自己开发的程序。其中包括:Action 类,页面模板,配置文件xwork.xml 。4WebWork 实战和技巧1、 多视图支持。2、 Action的数据验证功能。3、 类型转换4、 一个Action 的多个执行方法。5、 Action链(Action Chaining)。6、 多模块支持解决方案。7、 doInput 方法。8、 prepare方法。化的代码方到prepare 方法中。9、A

9、ction 的Model Driven。10、Quick Start。5小结WebWork 虽然不像Struts1那样赫赫有名,但也是出身名门,WebWork 来自另外一个优秀的开源组织:opensymphony ,这个优秀的开源组织同样开发了大量优秀的开源项目,如Qutarz 、OSWorkFlow 等。相对于Struts1存在的那些先天性不足而言,WebWork 则更加优秀,它采用了一种更加松耦合的设计,让系统的Action 不再与ServletAPI 耦合。使单元测试更加方便,允许系统从B/S结构向C/S结构转换。WebWork 则更加优秀,它采用了一种更加松耦合的设计,让系统的Acti

10、on 不再与ServletAPI 耦合。使单元测试更加方便,允许系统从B/S结构向C/S结构转换。相对于Struts1仅支持JSP 表现层技术的缺陷而言,WebWork 支持更多的表现层技术,如Velocity 、FreeMarker 和XSLT 等。WebWork 可以脱离Web 应用使用,这一点似乎并没有太多优势,因为,一个应用通常开始已经确定在怎样的环境下使用。WebWork 有自己的控制反转(InversionofControl )容器,通过控制反转,可以让测试变得更简单,测试中设置实现服务接口的Mock 对象完成测试,而不需要设置服务注册。WebWork 2使用OGNL 这个强大的表

11、达式语言,可以访问值栈。OGNL 对集合和索引属性的支持非常强大。WebWork 建立在XWork 之上,使用ServletDispatcher 作为该框架的核心控制器,处理HTTP 的响应和请求。从处理流程上来看,WebWork 与Struts 1非常类似,它们的核心都由控制器组成,其中控制器都由两个部分组成。核心控制器ServletDispatcher ,该控制器由WebWork 框架提供。业务逻辑控制器Action ,该控制器由程序员提供。相对Struts 1的Action 与ServletAPI 紧紧耦合的弱点来说,WebWork 的Action 则完全与ServletAPI 分离,因

12、而该Action 更容易测试。二 Struts 框架技术介绍主讲:李元钦,刘依玲1. 什么是StrutsStruts 是Apache 基金会Jakarta 项目组的一个Open Source(开放源码 项目,它采用MVC 模式,能够很好地帮助java 开发者利用J2EE 开发Web 应用。Structs 框架的核心是一个弹性的控制层。有其自己的控制器(Controller ),同时整合了其他的一些技术去实现模型层(Model )和视图层(View )。在模型层,Struts 可以很容易的与数据访问技术相结合,如 JDBC (Java数据库连接/ EJB(Java中的商业应用组件技术 ,以及其它

13、第三方类库。在视图层,Struts 能够与JSP ,包括 JSTL 与 JSF ,以及 Velocity 模板,XSLT 与它表示层技术。Struts 为每个专业的 Web 应用程序做背后的支撑帮助,为你的应用创建个扩展的开发环境。 Struts2号称是一个全新的框架,但这仅仅是相对Struts 1而言。Struts 2 与Struts 1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个框架:WebWork 基础上发展起来的。从某种程度上来讲,Struts2没有继承Struts 1的血统,而是继承WebWork 的血统。因为Struts2是WebWork 的升级,而不是一个

14、全新的框架,因此稳定性、性能等各方面都有很好的保证:而且吸收了Struts 1和WebWork 两者的优势,因此,是一个非常值得期待的框架。2.struts 的优点:一Struts 最大的优点就是是一种开源软件,能够使开发者更深入的了解其内部实现机制。二使开发者在构建基于Java Servlet和JavaServer Pages(JSP )技术的Web 应用时更加容易。也为开放者提供了一个统一的标准框架。三实现MVC 模式,使结构清晰, 并有丰富的tag(标签,附加语 可以用。四通过一个配置文件,即可把握整个系统各部分之间的联系; 提供Exception 处理机制 . 数据库链接池管理还支持I

15、18N 。3.struts 的缺点:一、 转到展示层涉及到转向时,需要配置forward ,有时还必须重新启动服务器。二、 Struts 的Action 必需是thread safe 方式,它仅仅允许一个实例去处理所有的请求。所以action 用到的所有的资源都必需统一同步,这个就引起了线程安全的问题。三有限的适用范围Struts 是一种基于 Web 的 MVC 解决方案,所以必须用 HTML 、JSP 文件和 servlet 来实现它。4. struts1和struts2的比较Action 类:Struts1要求Action 类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而

16、不是接口。Struts 2 Action类可实现一个Action 接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport 基类去实现常用的接口。Action 接口不是必须的,任何有execute 标识的POJO 对象都可以用作Struts2的Action 对象。可测性:测试Struts1 Action的一个主要问题是execute 方法暴露了servlet API(这使得测试要依赖于容器)。一个第三方扩展Struts TestCase提供了一套Struts1的模拟对象(来进行测试)。Struts 2 Action可以通过初始化、设置属性、调用方法来

17、测试,“依赖注入”支持也使测试更容易。类型转换:Struts 1 ActionForm 属性通常是String 类型。Struts1,它使用Commons-Beanutils 进行类型转换。每个类一个转换器,对每一个实例来说是不可配置的。 Struts2 使用OGNL 进行类型转换。提供基本和常用对象的转换器。5. 小结从以上的介绍中可知 Struts 是一种灵活使用的话将会大大提高开发效率它利用页面导航可以使系统脉络更加清晰。而通过一个配置文件,即可把握整个系统各部分之间的联系。表现与逻辑分离。维护扩展比较方便。便于团队的开发的一种框架技术。三. Hibernate框架技术介绍:主讲:麻冲1

18、Hibernate 定义Hibernate 是一种Java 语言下的对象关系映射解决方案。它是一种自由、开源的软件。它用来把对象模型表示的对象映射到基于SQL 的关系模型结构中去,为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。2Hibernate 的作用Hibernate 不仅管理Java 类到数据库表的映射(包括从Java 数据类型到SQL 数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL 和JDBC 处理数据的时间。它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来。无论是从设计草案还是从一个遗留数据库开

19、始,开发人员都可以采用Hibernate 。3Hibernate 的应用Hibernate 对JDBC 进行了非常轻量级的对象封装,使得Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate 可以应用在任何使用JDBC 的场合,它既可以在Java 的客户端程序使用,也可以在Servlet/JSP的Web 应用中使用。最具革命意义的是,Hibernate 可以在应用EJB (EnterpriseJavaBeans 是Java 应用于企业计算的框架)的J2EE 架构中取代CMP ,完成数据持久化的重任。4Hibernate 在JAVA 中的开发步骤创建Hibernate 的

20、配置文件创建持久化类创建对象-关系的映射文件通过Hibernate API编写访问数据库的代码5Hibernate 配置文件 6Hibernate 的核心接口Hibernate 分为:Session、SessionFactory 、 Transaction、Query 和Configuration5个接口,这5个核心接口是在任何开发中都会用到的。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。Session 接口:Session 接口负责执行被持久化对象的CRUD 操作(CRUD的任务是完成与数据库的交流, 包含了很多常见的SQL 语句。 。但

21、需要注意的是Session 对象是非线程安全的。同时,Hibernate 的session 不同于JSP 应用中的 HttpSession。这里当使用session 这个术语时,其实指的是Hibernate 中的session ,而以后会将HttpSesion 对象称 为用户session 。SessionFactory 接口:SessionFactory 接口负责初始化Hibernate 。它充当数据存储 源的代理,并负责创建Session 对象。这里用到了工厂模式。需要注意的是SessionFactory 并不是轻量级的,因为一般情况下,一个项目通常 只需要一个SessionFactory

22、 就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory 。Configuration 接口:Configuration接口负责配置并启动Hibernate ,创建 SessionFactory对象。在Hibernate 的启动的过程中,Configuration 类的实例首先定位映射文档位置、读取配置,然后创建 SessionFactory对象。Transaction 接口:Transaction 接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自 己的底层事务处理代码。Query 和Criteria 接口:Query 和Criteria 接口负责执行各

23、种数据 库查询。它可以使用HQL 语言或SQL 语句两种表达方式。Hibernate 的核心接口框图: 四Spring 框架技术介绍:主讲:张治君1pring 的起源和背景:Rod Johson在2002年编著的Expert one to one J2EE design and development一书中,对Java EE正统框架臃肿、低效、脱离现实的种种现状提出了质疑,并积极寻求探索革新之道。以此书为指导思想,他编写了interface21框架,这是一个力图冲破Java EE 传统开发的困境,从实际需求出发,着眼于轻便、灵巧,易于开发、测试和部署的轻量级开发框架。Spring 框架即以in

24、terface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了1.0正式版。同年他又推出了一部堪称经典的力作Expert one-to-one J2EE Development without EJB,该书在Java 世界掀起了轩然大波,不断改变着Java 开发者程序设计和开发的思考方式。在该书中,作者根据自己多年丰富的实践经验,对EJB 的各种笨重臃肿的结构进行了逐一的分析和否定,并分别以简洁实用的方式替换之。至此一战功成,Rod Johnson成为一个改变Java 世界的大师级人物。2.Spring 简介Spring 是一个开源框架,它由Rod Johnson

25、创建。它是为了解决企业应用开发的复杂性而创建的。Spring 使用基本的JavaBean 来完成以前只可能由EJB 完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java 应用都可以从Spring 中受益。目的:解决企业应用开发的复杂性功能:使用基本的JavaBean 代替EJB ,并提供了更多的企业应用功能 范围:任何Java 应用简单来说,Spring 是一个轻量级的控制反转(IoC和面向切面(AOP的容器框架。3.Spring 有如下优点:低侵入式设计,代码污染极低 独立于各种应用服务器,可以真正实现Write Once,Run

26、Anywhere的承诺 Spring 的DI 机制降低了业务对象替换的复杂性 Spring 并不完全依赖于Spring ,开发者可自由选用Spring 框架的部分或全部4.Spring 框架Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式,如图所示。 组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory ,它是工厂模式的实现。BeanF

27、actory 使用控制反转 (IOC ) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI 、EJB 、电子邮件、国际化、校验和调度功能。Spring AOP :通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP 。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AO

28、P,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO 、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO

29、异常层次结构。Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP 、Velocity 、Tiles 、iText 和 POI 。5.Spring 带给我们什么方便解耦,简化开发通过Spring 提供的IoC 容器

30、,我们可以将对象之间的依赖关系交由Spring 进行控制,避免硬编码所造成的过度程序耦合。有了Spring ,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。AOP 编程的支持通过Spring 提供的AOP 功能,方便进行面向切面的编程,许多不容易用传统OOP 实现的功能可以通过AOP 轻松应付。声明式事务的支持在Spring 中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。方便程序的测试可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring 里,测试不再是昂贵的操作,而是随手可做的事情

31、。方便集成各种优秀框架Spring 不排斥各种优秀的开源框架,相反,Spring 可以降低各种框架的使用难度,Spring 提供了对各种优秀框架(如Struts,Hibernate 、Hession 、Quartz )等的直接支持。 降低Java EE API的使用难度Spring 对很多难用的Java EE API(如JDBC ,JavaMail ,远程调用等)提供了一个薄薄的封装层,通过Spring 的简易封装,这些Java EE API的使用难度大为降低。 Java 源码是经典学习范例Spring 的源码设计精妙、结构清晰、匠心独用,处处体现着大师对Java 设计模式灵活运用以及对Jav

32、a 技术的高深造诣。Spring 框架源码无疑是Java 技术的最佳实践范例。如果想在短时间内迅速提高自己的Java 技术水平和应用开发水平,学习和研究Spring 源码将会使你收到意想不到的效果。6. 热爱Spring 的五个理由1.Spring 提供更好的优势。2.Spring 支持POJO 编程。3. 依赖注入有助于可测试性。4. 反向控制简化了JDBC 。5.Spring 在社区中的繁荣。五. JSF 框架技术的介绍(主讲:蔣科1什么是JSF 框架JavaServer Faces (JSF 是一种用于构建 Web 应用程序的新标准 Java 框架。它提供了一种以组件为中心来开发 Jav

33、a Web 用户界面的方法,从而简化了开发。JavaServer Faces 还引起了广大 Java/Web 开发人员的兴趣。“企业开发人员”和 Web 设计人员将发现 JSF 开发可以简单到只需将用户界面 (UI 组件拖放到页面上,而“系统开发人员”将发现丰富而强健的 JSF API 为他们提供了无与伦比的功能和编程灵活性。JSF 还通过将良好构建的模型-视图-控制器 (MVC 设计模式集成到它的体系结构中,确保了应用程序具有更高的可维护性。最后,由于 JSF 是通过 Java Community Process (JCP 开发的一种 Java 标准,因此开发工具供应商完全能够为 JavaS

34、erver Faces 提供易于使用的、高效的可视化开发环境。2JSF 的设计模式:Composite 模式 :Composite 模式让客户代码能够统一处理复合对象和基本对象。复合对象是基本对象的容器。在第一阶段(Restore View 阶段)和最后一个阶段(Render Response 阶段),使用 JSF UI 组件构造 UI View 。UIComponentBase 就是 Composite 模式中 Component 抽象类的一个例子。UIViewRoot 是 Composite 类,而 UIOutput(比方说)就是叶子(或者基本类)。UIComponentBase 类定义了

35、叶子和复合对象的公共方法,如编码/解码值和子节点管理函数。子节点管理函数,如 getChildren,对于叶子节点返回空列表,对于复合节点则返回其子节点。Decorator 模式 :Decorator 模式的目的是不通过子类化动态扩展对象的行为。JSF 框架有很多扩展点(即可插入机制)。JSF 实现可使用 Decorator 模式替换默认的 PropertyResolver 、VariableResolver 、ActionListener 、NavigationHandler 、 ViewHandler 或 StateManager。通常自定义实现接受通过构造函数传递给它的默认实现的引用。自

36、定义实现仅仅改写功能的一个子集,而将其他功能委托给默认实现。Strategy 模式:Strategy 模式的目的是封装不同的概念。JSF 框架采用 Strategy 模式使用委托实现模型呈现 UI 组件。JSF 技术支持两种呈现模型。在直接实现模型中,UI 组件对收到的请求中的数据进行解码,然后编码这些数据进行显示。在委托实现模型中,解码和编码操作委托给和组建关联的专门呈现器。后一种模型利用了 Strategy 设计模式,比直接实现更灵活。在 Strategy 模式中,将不同的算法封装在单独的对象中,从而可以动态地改变算法。JSF 实现可以用已有的 renderkit 实例注册另外的呈现器,当

37、应用程序启动的时候,JSF 实现读取配置文件将这些呈现器和 UI 组件联系在一起。Template Method 模式:Template Method 模式的目的是将变化的步骤推迟到子类中,而在父类中定义那些固定的算法步骤。JSF 框架通过 PhraseListeners 展现了 Template Method 模式提供的功能。采用 Template Method(或者 “hook”)使得 Web 作者可以为不同阶段之间的可选步骤提供实现,而主要阶段仍然和 JSF 框架的定义一致。JSF 框架提供了 PhaseListeners,概念上类似于 Template Method 模式中的可变步骤。

38、JSF 框架有六个预定义的阶段,在每个阶段之间,Web 作者可以实现 PhaseListeners 来提供类似于 Template Method hook 的 hook。事实上,这种结构比 Template Method 模式更具有扩展性。可以通过注册 PhraseId 为 ANY_PHRASE 的 PhaseListener 在每个阶段后提供 hook。如果 PhaseId 是 ANY_PHASE,JSF 实现就会在每个阶段之前和之后调用该 PhaseListener。JSF 框架中的实现略有不同,因为可以根本没有 PhaseListener,但是在 Template Method 模式中,

39、子类通常重新定义父类中抽象的可变步骤。Observer 模式:Observer 模式的目的是当目标对象的状态改变时自动通知所有依赖的对象(即观察器)。JSF 在 UI 组件中实现了 Observer 模式。JSF 有两类内建事件:ActionEvent 和 ValueChangedEvent。ActionEvent 用于确定用户界面组件(如按钮)的激活。当用户单击按钮时,JSF 实现通知添加到该按钮上的一个或多个动作监听程序。于是该按钮被激活,或者说按钮(主体)的状态改变了。添加到按钮上的所有监听程序(即观察器)都收到通 知该主体状态已经改变。类似的,当输入 UI 组件中的值改变时,JSF 实

40、现通知 ValueChangeListener 。JSF 框架利用了 Singleton、Model-View-Controller 、Factory Method、State 、Composite 、Decorator 、Strategy 、Template Method 和 Observer 设计模式。因为它的体系结构建立在已经验证的设计模式的基础上,这是一个健壮的框架,模式在 JSF 框架中得到了很好的利用。3各种JSF 框架1、bean 公司的workshop2、sun 公司netbean4、myeclipse 开发工具5、aom6、oracle jdevelop 11g7、icefa

41、ces8、Myfaces Trinidad9、Myfaces tomahawk4:各种JSF 框架比较1、Myfaces tomahawk考虑到apache 的背景,可以作为一个选择,但不是最好选择。2、Myfaces Trinidad个人认为这个组件受oracle 公司捐赠的影响,目前Oracle Jdevelop 11g的组件非常丰富,是rich component,计划有进一步捐赠动作,但时间不详。考虑到apache 的背景,可以作为一个选择,但不是最好选择。3、icefaces这是一个比较美观的JSF 框架,部分组件支持ajax ,目前支持JSF1.1,sun ri 与Myfaces 的实现都可以使用,组件数量够用,但需要进一步丰富,取法布局组件,对收费用户提供最新版本,社区用户可以使用次新版本,但可以从 SVN上下载最新版本自己编译(不知为何,我自己下载没有成功),文档丰富,例子也不错,icesoft 公司是一个商业公司,版本更新速度很快,也推出了 eclipse、workshop 、netbean 的插件,支持可视化设计,但eclipse 下的响应速度很慢。可以作为一个

温馨提示

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

评论

0/150

提交评论