- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Struts框架技术Web应用
基于Struts框架技术Web应用
摘要:Struts是MVC模式的经典实现,它强制性地将Web应用程序分割为模型、视图和控制器三个组件,提高了系统的可维护性与可移植性,文章运用原理说明与实例解析相结合的方法,对Struts的技术特性与应用形式作了进一步的探索与研究。
关键词:Struts;MVC; 网络购物系统
1 MVC设计模式
MVC是一种经典的设计模式。它强制性地使应用程序的输入、处理和输出分开,把应用程序抽象为三个核心部件:Model(模型)、View(视图)、Controller(控制器)。模型代表程序的核心功能,负责实现业务逻辑。视图负责提供用户输入接口或展现业务处理的结果数据,实现与用户的交互。控制器负责接受用户请求,调用某个模型处理用户请求,最后将结果送给特定视图进行显示。MVC模式实现功能模块与显示模块的分离,因此提高了应用系统的可维护、可扩展、可移植及组件的可复用性。三者之间的关系如图1所示。
2 Struts对MVC模式的实现与工作流程
2.1 Struts基于MVC模式的组件结构
Struts是由Apache开源软件联盟提供的一套用于构建Java Web应用程序的框架。它的目标是将Web应用程序分离为视图层、控制层、模型层,也就是MVC模式。
视图。它主要由JSP与ActionForm构成,Struts定义专用的标签库简化了视图组件的开发,提高了开发效率。基于ActionForm的表单显示、表单验证简化了用户界面的开发。
模型。模型代表了一个系统的业务数据和业务逻辑,并负责访问和更新持久化数据。在Struts中,系统业务逻辑主要由JavaBean或EJB组件来体现。
控制器。控制器主要由ActionServlet类和Action类来实现。ActionServlet类是Struts框架中的核心组件,所有的用户请求都先由ActionServlet来处理,然后根据配置文件struts-config.xml的配置信息,把请求转发给合适的Action对象。Action类是用户请求和业务逻辑之间的桥梁,每个Action充当着一项业务代理,同时,Action类还负责更新模型的状态,并帮助控制应用程序的流程。
2.2 Struts的工作流程
当Actionservlet(控制器)接收到一个客户请求时,将执行如下流程:
检索和用户请求匹配的ActionMaPPing实例,如果不存在,就返回用户请求路径无效的信息。
如果AstionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据封装到ActionForm对象中。
根据配置信息决定是否需要表单验证,如果需要验证,就调用ActionForm的验证方法validate()。
如果ActionForm的validate()方法返回一个不包含任何ActionMessage的ActlonErrors集合对象或返回nun,就表示表单验证成功。
Actionservlet根据AstionMapping实例包含的映射信息决定将请求转发给系统的哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Aetion的execute()方法。
Action的execute()方法返回一个ActionForm对象,Actionservlet再把客户请求转发给ActionForward对象所指向的JSP组件。ActionForward对象指向的视图组件生成动态网页,返回给客户。对于以上流程的第4,如果ActionForm的validate()方法返回一个包含一个或多个ActionMessage的ActionErrors对象,就表示表单验证失败,此时Actionservlet将直接把请求转发给包含用户提交表单的JSP组件。在这种情况下,不会创建Action对象。Struts的体系结构如图2所示。
3基于Struts框架技术的网上购物系统的体系结构
下文以一个名为ShoppingOnline的购物系统的应用为例,介绍系统基于Struts技术的架构设计与工作流程。
3.1系统架构设计
用户通过浏览器访问该系统,故系统的软件架构采用的是多层的B/S结构,利用Struts框架技术实现快速开发。用JSP、html组成实现View(视图)组件,使用ActionServlet对象结合structs-config.xml文件配置充当Controller(控制器),并将业务处理逻辑抽象成各种接口和实现类,再由不同的Action调用,这样就组成了Model(模型)。系统的架构设计如图3所示。
文档评论(0)