文档介绍:Struts框架及其在Web开发中的应用
(作者:___________单位: ___________邮编: ___________)
摘要 Struts是当前Web应用开发中最为流行的框架之一。本文简要介绍了MVC(Model/View/Controller)设计模式和Struts框架的体系结构,然后结合一个实例,讲述了Struts实现MVC模式的Web应用的过程。结果显示Struts能够大大提高开发效率,同时提高系统的可维护性和扩充性。
关键词 MVC模式;框架;Struts;Web应用
0 引言
传统的Web应用开发工具(ASP、JSP)将页面显示、商业逻辑和数据处理大部分都集中在页面代码中,Web应用扩展维护比较困难,也不利于开发人员分工协作,在大型WEB应用开发中愈发显得力不从心。MVC(Model-View-Controller)设计模式将页面显示、商业逻辑和数据处理相分离,最大限度的降低系统各部分之间的耦合性,从而增强系统的可扩展维护性,提高代码重用率,使系统的层次结构更加清晰,易于分工协作。而Struts是一个为开发基于MVC模式的应用架构的开源框架。
1 Struts框架的体系结构
MVC设计模式
MVC设计模式是一种
“分治”的思想,它使应用程序的输入、处理和输出分开,把应用程序分成三个核心模块:模型(Model)、视图(View)和控制器(Controller)。Model用来储存应用程序的数据以及访问、维护这些数据的业务逻辑,View建立终端用户的表示层,Controller是模型与视图的接口,其作用是获取并处理HTTP请求,并调用相关的业务模型中的方法对请求进行处理,然后将对象模型层次处理后的结果返回到View。可见MVC设计模式的主要优点是实现了业务逻辑和显示逻辑的分离,提高了系统的可维护性、可扩展性、可移植性和组件的复用性。
Struts框架
Struts是基于MVC的Web应用框架,由一组相互协作的类、Serlvet以及JSP TagLib组成。在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由ActionServlet和Action来实现,视图由一组JSP文件构成。Struts框架的体系结构如图1所示。下面分别从模型、视图、控制来看看struts的体系结构。
视图:主要是通过JSP技术生成页面完成视图,利用Struts提供的自定义标记库编写用户界面把应用逻辑和显示逻辑分离。Struts框架通过这些自定义标记建立了View和Model之间的联系,可以实现和Model部分中的ActionForm的映像,完成对用户数据的封装。
图1 Struts体系结构
控制器:作用是从客户端接受请求,并选择执行相应的业务逻辑,然后把响应结果送回到客户端。在Struts中,控制器由ActionServlet和ActionMapping对象构成,核心是一个Servlet类型的对象A
ctionServlet,它用来接受客户端的请求并分发到相应的动作类(Action类的子类)。ActionServlet包括一组基于配置的ActionMapping对象,每个ActionMapping对象实现了一个请求到一个具体的Model部分中Action对象之间的映射。
模型:在Struts中,Model可以分为系统的内部状态和改变系统状态的行为(业务逻辑)两部分。系统的内部状态常由一组JavaBean表示,业务逻辑由Action和ActionForm的类对象处理。Action对象封装了具体的处理逻辑,调用业务逻辑模块,并且把响应提交给合适的View以产生响应业务对象更新应用程序的状态。ActionForm可以派生子类对象,通过结合自定义标记库以实现对客户端的表单数据的良好封装和支持。Action对象可以直接对ActionForm进行读写,而不再需要和request,response对象进行数据交互。通过ActionForm对象实现了对View和Model之间交互的支持。
Struts-:用于建立Controller和Model之间的关系,将各部分紧密联系在一起。它描述了Con
troller所使用的把请求对应到具体处理的法则,同时它还描述了客户提供的数据与ActionForm组件的对应映射关系。
Sturts的工作流程
对于采用Struts框架的Web应用,在Web应用启动时就会加载并初始化ActionServlet,从struts-,把他们存放到各种配置对象中。其具体工作流程如下:
⑴客户端(Client)通过本地浏览器(Browser)向服务器发出一个