收藏 分销(赏)

Struts框架及其在Web开发中的应用.docx

上传人:天**** 文档编号:4581785 上传时间:2024-09-30 格式:DOCX 页数:11 大小:16.43KB
下载 相关 举报
Struts框架及其在Web开发中的应用.docx_第1页
第1页 / 共11页
Struts框架及其在Web开发中的应用.docx_第2页
第2页 / 共11页
Struts框架及其在Web开发中的应用.docx_第3页
第3页 / 共11页
Struts框架及其在Web开发中的应用.docx_第4页
第4页 / 共11页
Struts框架及其在Web开发中的应用.docx_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、Struts框架及其在Web开发中的应用摘要 Struts是当前Web应用开发中最为流行的框架之一。本文简要介绍了MVC(Model/View/Controller)设计模式和Struts框架的体系结构,然后结合一个实例,讲述了Struts实现MVC模式的Web应用的过程。结果显示Struts能够大大提高开发效率,同时提高系统的可维护性和扩充性。关键词 MVC模式;框架;Struts;Web应用0 引言 传统的Web应用开发工具将页面显示、商业逻辑和数据处理大部分都集中在页面代码中,Web应用扩展维护比较困难,也不利于开发人员分工协作,在大型WEB应用开发中愈发显得力不从心。MVC(Model

2、-View-Controller)设计模式将页面显示、商业逻辑和数据处理相分离,最大限度的降低系统各部分之间的耦合性,从而增强系统的可扩展维护性,提高代码重用率,使系统的层次结构更加清晰,易于分工协作。而Struts是一个为开发基于MVC模式的应用架构的开源框架。1 Struts框架的体系结构 MVC设计模式 MVC设计模式是一种“分治”的思想,它使应用程序的输入、处理和输出分开,把应用程序分成三个核心模块:模型(Model)、视图(View)和控制器(Controller)。Model用来储存应用程序的数据以及访问、维护这些数据的业务逻辑,View建立终端用户的表示层,Controller是

3、模型与视图的接口,其作用是获取并处理HTTP请求,并调用相关的业务模型中的方法对请求进行处理,然后将对象模型层次处理后的结果返回到View。可见MVC设计模式的主要优点是实现了业务逻辑和显示逻辑的分离,提高了系统的可维护性、可扩展性、可移植性和组件的复用性。 Struts框架 Struts是基于MVC的Web应用框架,由一组相互协作的类、Serlvet以及JSP TagLib组成。在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由ActionServlet和Action来实现,视图由一组JSP文件构成。Struts框架的体系结构如图1所示。下面分别从模型、视图

4、、控制来看看struts的体系结构。 视主要是通过JSP技术生成页面完成视图,利用Struts提供的自定义标记库编写用户界面把应用逻辑和显示逻辑分离。Struts框架通过这些自定义标记建立了View和Model之间的联系,可以实现和Model部分中的ActionForm的映像,完成对用户数据的封装。图1 Struts体系结构 控制器:作用是从客户端接受请求,并选择执行相应的业务逻辑,然后把响应结果送回到客户端。在Struts中,控制器由ActionServlet和ActionMapping对象构成,核心是一个Servlet类型的对象ActionServlet,它用来接受客户端的请求并分发到相应

5、的动作类(Action类的子类)。ActionServlet包括一组基于配置的ActionMapping对象,每个ActionMapping对象实现了一个请求到一个具体的Model部分中Action对象之间的映射。 模型:在Struts中,Model可以分为系统的内部状态和改变系统状态的行为两部分。系统的内部状态常由一组JavaBean表示,业务逻辑由Action和ActionForm的类对象处理。Action对象封装了具体的处理逻辑,调用业务逻辑模块,并且把响应提交给合适的View以产生响应业务对象更新应用程序的状态。ActionForm可以派生子类对象,通过结合自定义标记库以实现对客户端的

6、表单数据的良好封装和支持。Action对象可以直接对ActionForm进行读写,而不再需要和request,response对象进行数据交互。通过ActionForm对象实现了对View和Model之间交互的支持。 :用于建立Controller和Model之间的关系,将各部分紧密联系在一起。它描述了Controller所使用的把请求对应到具体处理的法则,同时它还描述了客户提供的数据与ActionForm组件的对应映射关系。 Sturts的工作流程 对于采用Struts框架的Web应用,在Web应用启动时就会加载并初始化ActionServlet,从文件中读取配置信息,把他们存放到各种配置对

7、象中。其具体工作流程 客户端(Client)通过本地浏览器(Browser)向服务器发出一个请求(HTTP Request)。 控制器(Controller)接收请求,即ActionServlet实现控制工作。它在文件中寻找请求的URL,找到对应的Action。 Action类执行建立在模型组件基础上的业务逻辑,模型组件是和应用程序关联的。 一旦Action类处理完业务逻辑,它把控制权返回给ActionServlet,Action类提供一个键值作为返回的一部分,它指明了处理的结果AcLionServlet使用这个键值来决定在什么视图中显示Action的类处理结果。 当ActionServlet

8、把Action类的处理结果传送到指定的视图中,请求的过程也就完成了。 2 Web开发中的应用 以一个Web考试系统中的考生注册子系统为例,说明Struts在Web程序开发中的应用。考生在注册页面上输入考生名、密码等相关信息,若注册成功,控制将转向一个显示注册成功的页面,否则控制将转向一个显示失败的页面。 项目建立 struts可运行在多种Web服务器上,这里使用同样出自Jakarta项目的Web服务器Tomcat。首先展开struts的压缩文件到Tomcat的主目录webapps下,接着在目录webapps下新建目录testWeb,将webapps“Struts-example下的WEB-IN

9、F目录拷贝到test目录下,然后将test“WEB-INF下的src和classes目录以及文件中内容清空。开发时,将JSP文件放在testWeb目录下,Java源文件放在testWeb“WEB-INF“src下,编译后的类文件放在testWeb“WEB-INF“classes下。 实现视图功能的用户界面的设计 JSP具有定制标记和包含Web组件的能力,可以实现定制的组件、容器和布局管理器,从而实现可扩展的、可重用的和可维护的Web应用界面。Struts中,JSP页面中利用Struts框架提供的taglib标记库的标记,能够大大提高开发效率。在该系统中,其注册页面概要%page content

10、Type=”text/html;charset=UTF-8” language=”java”% taglib uri=/WEB-INF/ prefix=bean% /引用Struts bean标记% taglib uri=/WEB-INF/ prefix=html% /引用Struts html标记html:html locale=trueheadtitleRegisterUser/title/ headbody bgcolor=#FFFFhtml:errors/html:form action= focus=userID table border=0 width=100%tr th alig

11、n=right UserName:/thtd align=lefthtml: text property=userID size=20 maxlength=20/ /td/trtr th align=right Password:/thtd align=lefthtml: password maxlength=20 size=20property=password /td/trtr /trtr td align=righthtml: submit property=submit value=submit /tdtd algin=lefthtml: reset / /td/tr/table/ht

12、ml:form/body/html:html 实现模型功能的组件设计 构建模型部分的组件是工作重点,它包含了整个应用程序的业务逻辑。此系统设计的组件为: 系统状态组件(FormBean),即实体模型类,它继承自ActionForm类,用来存放表单数据,与注册页面的表单对应的数据bean为:import *;/引用Struts类包public class UserForm extends ActionForm private String userID= null; private String password= null; public String getUserID()return us

13、erID; public void setUserID(String userID)= userID; public String getPassword()return password; public void setPassword(String password)this. password=password; 指令类组件(ActionBean),它扩展了Action类,主要是用来控制应用程序的流程,当注册考生按“submit”按钮后,来自用户的请求被Servlet(Controller)送到指令类组件RegUserAction,指令类调用相应的业务逻辑进行处理,然后把请求转发给相关的

14、JSP,其程序概要为:;import *; public class RegUserAction extends Action public ActionForward perform(ActionMappingmapping, ActionForm form, HttpServletRequest req, HttpServletResponse response) boolean flag; String username=(“UserID”);String password=(“password”); /获取其他注册信息,并根据注册信息,做相应的数据库操作,返回是否注册成功标志flag

15、if (flag)try().setUser(UserID, password);return (“success”);catch(UserDirectoryException e) return (“failure”);return (“failure”); /注册成功后转发给相应的jsp文件其中UserDirectory是一个helper类,记录UserID和password到一个标准的属性文件之中。 实现控制器功能的指令 Struts框架的核心是控制器类ActionServlet,不需要重新设计而直接使用。ActionServlet的核心是配置文件,它包含了应用程序的整个逻辑流程。在考生

16、注册信息过程中,用实现注册页面;用UserForm(扩展了ActionForm)封装了表单数据;用RegUserAction(扩展了Action)实现了考生注册信息(业务逻辑)并控制了应用程序流程;而在配置文件里实现了注册页面()、数据bean(UserForm)、逻辑bean (RegUserAction)之间的联系,其配置信息为:;struts-configform-beans form-bean name=userForm type= UserForm/form-beans action-mappingsaction path=/reguser type=RegUserAction in

17、put=/ name=userForm scope=requestforward name=success path=/forward name=failure path=/action /action-mappings/struts-config 当在注册页面上单击“submit”按钮时,考生请求被提交给ActionServlet, ActionServlet根据中的配置信息,把/的URL映射到RegUserAction,把考生注册信息封装到UserForm,由RegUserAction完成注册操作,然后转发给/”。由此可见,控制器通过配置文件把视图和模型联系在一起,集中了应用程序的整个逻辑

18、流程,此文件无论对于前期的开发还是后期的维护和升级都是非常重要的。 系统运行 启动Tomcat服务器,在浏览器中访问http:/ localhost:8080/testWeb/,就可以运行该系统了。3 结束语 Struts是一种基于MVC设计模式的Java Web框架,它使系统开发过程各个模块更加细化。利用taglib获得可重用的代码;利用ActionServlet配合实现对整个系统导航,增强了开发人员对系统的整体把握;用户界面、业务逻辑和业务控制的分离,使系统的层次结构更加清晰,易于分工协作,同时增强系统的可扩展性、维护性。参考文献1(美)Ted Husted, 黄若波,程峰,程繁科译. 实战struts M. 机械工业出版社. 杨开英,刘榭. Struts框架的研究与应用J. 微计算机应用, 张南平,朱富利.基于MVC模式的Struts框架的研究与应用J. 计算机技术与发展, 李万龙,吴雪莉. 基于Struts框架的Web应用程序的实现J, 计算机技术与发展,

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服