struts2是一个基于MVC设计模式的web应用框架,其本质为一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。
其工作流程图如下图所示:
1.客户端向Servlet容器发送一个httpServletRequest请求;
2.该请求经过一系列的过滤器,然后FilterDispatcher被调用;
3.FilterDispatcher调用ActionMapper得到该请求所需要的Action;
4.若ActionMapper决定调用某个Action,FilterDispatcher讲请求交给ActionProxy处理;
5.ActionProxy通过Configurationmanager访问Struts.xml读取配置,叨叨需要调用的Action类;
6.ActionProxy创建ActionInvocation实例通过命名模式来调用action(在访问action之前都会经过一系列的拦截器);
7.Action执行完毕,ActionInvocation再根据Struts.xml配置文件找到相应的返回结果;