一、这是Struts2官方提供的Struts 2 的整体流程结构
二、下面用文字描述struts2的处理流程
一个请求在struts2框架中的处理大致分为以下四个步骤
1、客户端(浏览器)发起一个HttpServletRequest请求;
2、请求经过一系列过滤器(Filter)处理(主要有三层):
注意先后顺序:
a) 先ActionContextCleanUp;
b) 在其他过滤器(Other Filters:SiteMesh,ect);
c) 最后是FilterDispacher(FilterDispacher是控制器的核心,就是MVC中C控制器的核心)。
3、FilterDispacher询问ActionMapper是否需要调用某个Action来处理这个request请求;如果ActionMapper决定调用某个Action,FilterDispacher就把请求的处理交给ActionProxy。
4、 ActionProxy通过Configuration Manager 询问框架的struts.xml配置文件,找到需要调用的Action类;
5、 ActionProxy创建一个ActionInvocation实例,同时ActionInvocation通过代理模式调用Action,在调用之前,ActionInvocation会根据配置加载Action相关的所有的Interceptor(拦截器)。
6、 当Action执行完毕,ActionInvocation负责根据struts.xml文件中配置的result找到对应的返回结果,跳转到另一个action或者是jsp页面。