码迷,mamicode.com
首页 > 其他好文 > 详细

Struts2执行流程

时间:2015-12-17 22:25:36      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:

 

技术分享

StrutsPrepareAndExecuteFilter是struts2框架的核心控制器,它负责拦截所有的用户请求,当用户请求到达时,该Filter会过滤用户请求,如果用户请求以action结尾,该请求就会被转入struts2框架来处理。

 

   1) 客户端发起一个请求(*.action)

   2) 主控器StrutsPrepareAndExecuteFilter拦截请求

   3) 主控器通过ActionMapper判断请求是否交给action处理.如果是,那么判断请求的action是否存在,如果不存在,报404错误.如果不是交给action处理,那么将请求转发给对应的web组件.

   4) 主控器创建ActionProxy,这个对象全权负责action的执行.

   5) ActionProxy通过ConfigurationManager对象获得当前访问的action的相关配置信息.

   6) ActionProxy根据获得的action的配置信息,创建ActionInvocation对象.

   7) ActionInvocation对象负责执行action前面的拦截器以及action对象,并且处理action执行后的结果.

   8) action前面的拦截器被执行,最后执行action.(Struts2,多实例单线程)

   9) ActionInvocation得到action执行后的逻辑视图,根据逻辑视图找到物理视图, 然后转发请求.

 

客户端发起一个请求(*.action或无结尾),经过web.xml过滤器,走StrutsPrepareAndExecuteFilter核心控制器,进入struts2一系列的拦截器Interceptor (实现代码功能),根据struts-default.xml加载拦截器,通过action的名称来分发请求到对应的action类,执行action类的execute方法,通过execute方法中返回的字符串,在struts.xml中找到对应的结果页面(result)[在action执行之前,执行了defaultStack拦截器栈(在sruts2-core-xxx.jar目录下的struts-default.xml中定义]。

Struts2执行流程

标签:

原文地址:http://www.cnblogs.com/d392110851/p/5053176.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!