Struts2.x运行流程(非常重要)
Struts2.x简单运行流程:
1、所有请求被Struts2.x核心控制器StrutsPrepareAndExecuteFilter拦截
2、根据ActionMapper提供的信息决定如何进行下一步(如果不是action请求 那么直接 chain.doFilter(request,response)放行,否则进入下一步创建Action 代理对象)
3、ActionMapper主要依赖Struts2的配置文件struts.xml
4、接下来为每个Action创建Action代理类ActinProxy
5、执行ActionProxy的execute()方法
6、在执行ActionProxy的execute()方法的时候,会依次执行Struts2中的拦 截器(默认的 18个)
7、执行完所有拦截器之后,会真正执行目标Action
8、目标Action需要返回转向的视图名称
9、ActionProxy取得视图名称对象Result完成转向
10、生成response对象完成本次的请求
Struts2.x运行流程中很重要的几点:
1、生成代理对象 ActionProxy
2、很重要的一个对象:ActionInvocation
3、经过18个拦截器入栈和出栈
备注:应该参看那张运行流程图来debug跟踪源代码,画出时序图。