1、客户端提交一个HttpServletRequest请求。
2、请求被提交到一系列Filter过滤器。
3、FilterDispatcher是Struts2控制器核心。通常是过滤器链中最后一个过滤器。
4、请求发到FilterDispatcher后,FilterDispatcher询问ActionMapper是否需要调用某个Action来处理这个请求。
5、如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求提交给ActionProxy进行处理。
6、ActionProxy通过Configuration Manager(访问struts.xml)询问框架的配置文件,找到需要调用的Action类。
7、ActionProxy创建一个ActionInvocation实例,ActionInvocation通过代理模式调用Action,在调用之前会根据配置文件加载相关所有Interceptor拦截器。
8、Action执行完毕后,返回一个result字符串,再按相反顺序通过Interceptor拦截器。
9、ActionInvocation负责根据struts.xml中配置的result元素,找到与返回值对应的result,决定下一步输出。