论文摘要
目前,国内外信息化建设已经进入以Web应用为基础核心的阶段,Java语言应该算得上是开发Web应用的最佳语言。因此,以Java语言为基础的J2EE企业级应用系统逐渐成为计算机Web应用系统的主流。起先,我们使用servlet和JSP编写Web应用,但它们处理很多常见的任务都需要大量的编程工作。J2EE下各种框架的出现就是为了简化这些任务。大部分的J2EE Web应用在职责上至少能被分为3层:表示层,业务层和持久层。每层在功能上都应该是十分明确的,而不应该与其他层混合。一个好的框架一般有针对性地处理某一层的问题,并能把它做好,而且它能把开发者从底层编码中解放出来,使他们能专心于应用程序的逻辑。Struts和JSF就是针对表示层推出的两个十分优秀的框架,Struts是Apache组织的开源J2EE应用框架,是一个拥有灵活控制层的高度扩展性的框架,JavaServer Faces是J2EE世界中首个具有RAD(快速开发)风格,可以开发定制用户界面的Web应用的服务器端技术。Struts和JSF都采用了模型-视图-控制器(MVC)模式,将面向对象的设计与可视化接口分开,视图负责与用户进行交互,模型是业务逻辑和数据,而控制器则是响应用户事件并集成模型与视图的应用代码。这种模式确保了应用是松散耦合的,因而减少了各层之间的依赖性。Struts使用JSP定制标记和MVC提高了代码的可重用性和控制层的灵活性,因出现较早,已经成为J2EE中事实上的标准。JSF是由Sun公司倡导的技术,已经成为JavaEE的规范之一,它的主要目的是为开发Web应用的用户界面提供一个标准框架。JSF提供了富有表现力的组件模型,并且用户界面组件是在服务器上运行的,对客户端生成的事件做出响应。同时,它们之间也存在很多的不同。首先,JSF的开发是基于组件的,一个组件就可以触发一个事件,而在Struts中实际是一个表单只能对应一个事件(一个动作Action),因此相对于Struts这种称为基于请求的事件而言,JSF的基于组件的事件是一种更细粒度的事件,这也是Struts和JSF最大的区别。其次,Struts的JavaBean ActionForm中只包含了与页面相对应的属性,与页面相对应的行为则放在Action类中,而JSF的backing bean中同时包含了属性和相应的行为。另外,两者在显示技术、实现、性能方面也有差别。本文在对两种框架进行介绍的基础上,从它们的基本概念和实现原理入手,在基础构造、体系结构及扩展、性能、实现等方面进行了详细比较,指出了两种框架的异同,并总结了它们各自的优点和缺点,从而谈到它们在J2EE Web应用中可以互为补充的可能性,进而提出在J2EE Web应用中集成使用Struts和JSF两种框架,这样可以充分发挥它们各自的优点,并屏蔽掉它们的缺点。本文在从理论充分论证集成使用两种框架的可行性基础上,通过一个Web实例展示了集成Struts和JSF的运行效果,并对在以后项目开发中如何使用这两种框架给出了自己的见解。