Struts2的处理流程参照上图所示:
1.客户端浏览器发起一个请求;
2.请求经过一些列的过滤器,如图中的ActionContextCleanUp,SiteMesh等等;
3.请求到达FilterDispatcher,它是Struts2控制层的核心。
4.FilterDispatcher询问ActionMapper是否要调用相应的Action来处理客户发来的请求。如果ActionMapper决定要调用某个Action则DispatcherServlet把请求转给ActionProxy。
5.ActionProxy通过Configuration Manager(struts.xml)询问框架的配置文件,找到需要调用的Action类。
6.ActionProxy创建一个ActionInvocation实例,同时ActionInvocation通过代理模式调用Action。但在调用之前,ActionInvocation会根据配置加载Action相关的所有Interceptor(拦截器)。
7.一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果result。
8.将result的结果返回给客户端。
原文:http://www.cnblogs.com/blackckat-hm/p/3679328.html