Struts 2开发.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Struts 2开发

第4章 Struts 2开发; 4.1.1 Struts 2原理 1. Struts 2的工作流程 Struts 2的一个请求在Struts 2框架内被处理,分为以下几个步骤,如图4.1所示。 (1)客户端初始化一个指向Servlet容器(例如Tomcat)的请求, (2)该请求经过一系列Filter过滤器,如ActionCleanUp和FilterDispatcher等。 (3)FilterDispatcher被调用,FilterDispatcher询问ActionMapper这个请求是否需要调用某个action。FilterDispatcher(StrutsPrepareAndExecuteFilter以前的版本)是Struts 2控制器的核心,它通常是过滤器链中的最后一个过滤器。;(4)如果ActionMapper决定需要调用某个action,FilterDispatcher则把请求交给ActionProxy进行处理。 (5).ActionProxy通过Configuration Manager询问框架的配置文件struts.xml,找到调用的action类。 (6)ActionProxy创建一个ActionInvocation实例。 (7)ActionInvocation实例使用命名模式来调用,在调用Action过程的前后涉及相关拦截器(Interceptor)的调用。 (8)一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是一个需要被表示的JSP或者FreeMaker的模板,也可能是另外一个Action链。在表示过程中可以使用Struts 2框架中继承的标签,还需要涉及ActionMapper。 2. Struts 2请求-响应流程 Struts 2应用开发流程可按以下请求-响应流程来开发,其中虚线框内为Struts 2的控制器,由StrutsPrepareAndExecuteFilter和XxxAction构成。; StrutsPrepareAndExecuteFilter为核心控制器,XxxAction为业务控制器,业务控制器由用户自定义。业务控制器XxxAction用于调用业务方法和返回处理结果,通常并不与物理视图关联,该处理结果与物理视图关联由StrutsPrepareAndExecuteFilter决定。在Struts 2的控制下,用户请求不再向JSP页面发送,而是由核心控制器StrutsPrepareAndExecuteFilter”调用” JSP页面来生成响应,整个工作流程如图4.2所示。; 3. Servlet Filter技术 Filter过滤器是是用户请求和Web服务器之间的一层处理程序,这层程序 可以对用户请求和处理程序响应的内容进行处理,过滤器用于权限控制、编 码转换等。 过滤器对请求、加过滤器请求和加过滤器链请求的处理过程如图4.3所示。 所有的过滤器类都必须实现java.Servlet.Filter接口,它含有3个过滤器类必须实现的方法。 ● init(FilterConfig)。 过滤器的初始化方法,Servlet容器创建过滤器实例后将调用该方法,它可以通过FilterConfig参数读取web.xml文件中过滤器的初始化参数。; 完成实际的过滤操作,当用户请求与过滤器关联的URL时,Servlet容器将 先调用过滤器的doFilter方法,在返回响应之前也会调用该方法。 ● doFilter(ServletRequest,ServletResponse,FilterChain)。 ● destroy()。 Servlet容器在销毁过滤器实例前调用该方法,用于释放过滤器占用的资源。 过滤器编写完成后 ,要在web.xml进行配置,格式如下: filter filter-name过滤器名称/filter-name filter-class过滤器对应的类/filter-class !--初始化参数-- init-param param-name参数名称/param-name param-value参数值/param-value /init-param /filter;Java EE 教程;Java EE 教程;Java EE 教程;Java EE 教程;Java EE 教程;Java EE 教程;Java EE 教程;Java EE 教程

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档