1、Jakarta-Struts开源项目的研究与 Web应用 指导教师:李 祥 教授答 辩 人: 钟 进1选题背景及意义o 目前, Sun公司的 Java 2 Enterprise Edition(J2EE)平台已经日趋成熟,并得到广泛应用。随着 J2EE技术的成熟,越来越多的开发人员开始使用 Web应用框架来进行开发。 框架为 Web应用程序提供了预备的软件架构和相关的软件包,它极大地提高了开发人员开发的速度和效率。o Jakarta-Struts是 Apache软件组织提供的一项开放源代码项目,从 2000年 5月开始项目启动以来, 经过长达五年的发展,Struts已经逐渐成长为一个稳定、成熟
2、的框架,并且占有了MVC框架中最大的市场份额。 Struts是目前 Java Web MVC框架中不争的王者。o 随着 Struts在业界的大量使用,也促使 J2EE技术进行改变,在新的 J2EE技术中的 Web层的新框架 JSF( JavaServerFaces),就是对 Struts的思路进行改进的产物。 2贵州大学计算机软件与理论研究所o 系统是一套以互联网为基础,结合 WEB 技术、 JAVA技术、工作流技术、数据库技术,将传统物流的仓储业务和与金融的质押贷款业务有机结合在一起的综合管理信息系统。 o 系统的主要功能包括:金融协议管理、货物评估管理、货物库存管理、银行贷款管理、业务风险
3、监控、综合查询分析和报表等。 o 系统采用了 B/S结构, 系统的所有用户可以通过 Internet远程使用本系统,不受时间和地点的限制,进行远程的业务操作和业务监控。 o 系统基于 Struts框架进行开发,并根据实际需求使用和扩展Struts框架技术, 基于模型 -视图 -控制器( Model-View-Controller, MVC) 设计模式,将各个模块和对象,封装在各个类中,使系统具有开放、安全、健壮、跨平台等优势。本文所做的主要工作与创新之处3贵州大学计算机软件与理论研究所o 在系统中使用香港志鸿科技公司研发的Comlib软件包来进行系统的持久化操作及借助 Comlib提供的缓存机
4、制来提高数据的存取性能,从而提高了系统的整体性能; o 系统实现了对国际化的支持。 本文所做的主要工作与创新之处4贵州大学计算机软件与理论研究所n Struts的基本原理 o Struts的模型组件 o Struts的视图组件 o Struts的控制器组件 o 论文工作的实际应用内容提要5贵州大学计算机软件与理论研究所Struts的基本原理o MVC即 Model-View-Controller的缩写,是一种常用的设计模式。 MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。 MVC的工作原理 ,如下图所示: 6贵州大学计算机软件与理论研究所Struts的基本原理o St
5、ruts 是 MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了 MVC的各项特性,并根据 J2EE的特点,做了相应的变化与扩展。 Struts的体系结构与工作原理如图所示 7贵州大学计算机软件与理论研究所Struts的模型组件o 模型是应用程序中最重要的一部分,它包含了业务实体和业务规则,负责访问和更新持久化数据。应该把所有的模型组件放在系统中的同一个位置,这有利于维护数据的完整性,减少数据冗余,提高可重用性。o 模型应该和视图以及控制器之间保持独立。在分层的框架结构中,位于上层的视图和控制器依赖于下层模型的实现,而下层模型不应
6、该依赖于上层的视图和控制器的实现。 Struts应用的层次之间的依赖关系应是 :逐渐加强视图层 控制层 模型层 持久化层 逐渐减弱o 如果在模型组件中通过 Java的 import语句引入了视图或控制器组件,就违反了以上原则。下层组件访问上层组件会使WEB应用的维护、重用和扩展变得困难。8贵州大学计算机软件与理论研究所Struts的模型组件o 大多数 WEB应用程序的需求文档都是从视图的角度出发来制定的,然而每个对客户提交的请求的处理过程同时也是从模型层的角度定义的!一般而言,模型组件的开发者将着重于创建支持所有功能性请求的JavaBean。 在应用程序中的 Bean一般可分为以下几类:9贵州大学计算机软件与理论研究所 ActionForm Bean : 用来在模型层和视图层中传输数据; 系统状态 Bean : 用来表示系统的实际状态的 JavaBean ; 业务逻辑 Bean : 为执行业务逻辑而设计的 Bean 。Struts的模型组件10贵州大学计算机软件与理论研究所