- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
struts演示文稿
Struts 作者:王晓辉 Struts概述 MVC及其优势 Struts的起源 Struts的体系结构及工作流程 MVC及其优势 MVC是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。 MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化 主要包括三个核心模块,分别负担不同的任务: 模型(Model) 视图(View) 控制器(Controller) MVC及其优势 模型Model 模型表示应用程序的状态和业务逻辑, 模型以一个或多个java bean的形式存在。 对于大型应用,业务逻辑通常由JavaBean或EJB组件来实现 对于小型应用,同样的行为又可能嵌入到作为Controller一部分的 Action 类中。这在逻辑非常简单或者并不想要在其它环境中重用这些业务逻辑时是恰当的。Struts框架支持所有这些方法,但建议将商业逻辑(“做什么”)和 Action 类(“决定做什么”)分离开。 视图View 主要由JSP生成页面完成视图,Struts提供丰富的JSP 标签库,如 Html,Bean,Logic,Template等,这有利于分开表现逻辑和程序逻辑。 ActionForm是一个特殊的JavaBean,用于传递视图和控制器之间表单数据的传递 控制Controller 在Struts中,承担MVC中Controller角色的是ActionServlet。 ActionServlet是一个通用的控制组件。提供了处理所有发送到Struts的HTTP请求的入口点。 截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。 负责用相应的请求参数填充 Action From(称为FromBean),并传给动作类(称为ActionBean)。 动作类可以访问java bean 或调用EJB完成核心业业逻辑,建议不要在Action中实现业务逻辑。 最后动作类把控制权传给后续的JSP 文件生成视图。 所有这些控制逻辑利用Struts-config.xml文件来配置。 Controller都关联有一个XML文件Struts-config.xml, MVC设计模式 对于基于请求/响应的Web应用,模型位于Web服务器端,视图位于用户浏览器端(目前无法做到模型向视图主动发出数据更新事件,使用户界面能自动更新) MVC的处理过程: 1.控制器接收用户的请求,并决定应该调用哪个模型来进行处理 2.模型根据用户请求进行相应的业务逻辑处理,并返回数据 3.控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户 MVC的优点: 多个视图能共享一个模型。如一个应用需求Internet界面,后来又要WAP界面,只需增加一个显示层 模型是自包含的,与控制器和视图保持相对独立。如更换不同的数据库时 控制器提高了应用程序的灵活性和可配置性。 缺点: 将MVC运用到应用程序中,会带来额外的工作量,增加应用的复杂性,所以不适合小型应用程序 在最初构建MVC框架时会花费一定的工作量,但从长远来看,会大大提高后期软件开发的效率 Struts 的起源 Struts最早是作为Apache Jakarta项目的组成部分问世运做。项目的创立者希望通过对该项目的研究,改进和提高 JSP、Servlet、标签库等技术水准 Struts是一个现成的、优秀的、基于MVC的Web应用框架 定位在表示层 Struts与MVC的体系结构 Struts与MVC的体系结构 Struts —工作流程 工作流程 采用Struts框架的Web应用,在Web应用启动时加载并初始化ActionServlet(Web.xml),ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象中,例如Action的映射信息存放在ActionMapping对象中。 当ActionServlet接收到一个客户请求时,将执行以下流程: 1.检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信息。 2.如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。 3.根据配置信息决定是否需要表单验证。如果需要验证,就调用ActionForm的validate()方法,reset()方法用于把属性重新设置为默认值。 4.如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage(ActionError)的ActionErrors对象,就表示表单验证成功。 5.ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给哪个Action,如果相
文档评论(0)