上图为struts2官网上的工作流程图,通过上图可以看出Struts2是怎么样的工作的:
1,应用服务器(Tomcat或者Jetty等)将浏览器请求封装成HttpServletRequest
2,请求通过一系列的过滤器(Other filtler),最终到达核心过滤器(FilterDispather)
3 ,FilterDispather通过访问ActionMapper来确定该请求是否需要生成一个Action去处理请求。
4,如果确定需要生成Action,那么FilterDispather将请求处理交给ActionProxy
5,ActionProxy通过Configuration Manager访问框架的配置文件,找到需要调用的Action类
6,ActionProxy创建Action Invocation实例
7,Action Invocation在调用Action之前会先执行相关的拦截器
8,Action执行完毕,Action Invocation通过struts.xml的配置找到对应结果。