Struts2请求处理流程及源码分析.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Struts2 Struts2 SSttrruuttss22请求处理流程及源码分析 根据Web.xml配置,请求首先经过ActionContextCleanUp过滤器,其为可选过滤器, 这个过滤器对于Struts2和其他框架的集成很有帮助(SiteMeshPlugin),主要清理当前线 程的ActionContext和Dispatcher; 1.1Struts2 1.1Struts2 11..11SSttrruuttss22请求处理 1. Struts2 1. Struts2 11.. 一个请求在SSttrruuttss22框架中的处理步骤: a) 客户端初始化一个指向Servlet容器的请求; b) 根据Web.xml配置,请求首先经过ActionContextCleanUp过滤器,其为可选过滤 器,这个过滤器对于Struts2和其他框架的集成很有帮助(SiteMeshPlugin),主要清理当 前线程的ActionContext和Dispatcher; c) 请求经过插件过滤器,如:SiteMesh、etc等过滤器; d) 请求经过核心过滤器FilterDispatcher,执行 doFilter方法,在该方法中,询问 ActionMapper来决定这个请求是否需要调用某个Action; e) 如果 ActionMapper 决定需要调用某个 Action,则 ActionMapper 会返回一个 ActionMapping实例(存储Action的配置信息),并创建ActionProxy(Action代理)对象, 将请求交给代理对象继续处理; f)ActionProxy对象根据ActionMapping和ConfigurationManager询问框架的配置文 件,找到需要调用的Action类; g)ActionProxy对象创建时,会同时创建一个ActionInvocation的实例; h)ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关 拦截器(Intercepter)的调用; i) 一旦Action执行完毕,ActionInvocation实例负责根据struts.xml中的配置创建并返 回Result。Result通常是一个需要被表示的JSP或者FreeMarker的模版,也可能是另外 的一个Action链; j) 如果要在返回 Result 之前做些什么,可以实现 PreResultListener 接口, PreResultListener可以在Interceptor中实现,也可以在Action中实现; k) 根据Result对象信息,生成用户响应信息response,在生成响应过程中可以使用 Struts2 框架中继承的标签,在此过程中仍会再次涉及到ActionMapper; 2.Struts2 2.Struts2 22..SSttrruuttss22请求处理示意图: 1.2Struts2 1.2Struts2 11..22SSttrruuttss22请求处理源码分析 当用户向 发送请求时, 的 方法自动调用, Struts2 FilterDispatcher doFilter() doFilter() 方法处理请求过程,如下: 1. 创建值栈对象stack; 2. 创建Action上下文对象; 3. 对请求进行重新封装,此次封装根据请求内容的类型不同,返回不同的对象: 如果为multipart/form-data类型,则返回MultiPartRequestWrapper类型的对象,该对 象 服 务 于 文 件 上 传 , 否 则 返 回 StrutsRequestWrapper 类 型 的 对 象 , MultiPartRequestWrapper 是 StrutsRequestWrapper 的 子 类 , 而 这 两 个 类 都 是 HttpServletRequest接口的实现。 4. 通过actionMapper.getMapping()获得ActionMapping对象,Actio

文档评论(0)

文档终结者 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档