Struts2工作原理
Struts2的工作原理图
一个请求在Struts2中的处理大致分为以下几个步骤(可参考源码:https://github.com/apache/struts):
1.客户端初始化一个指向servlet容器的请求;
2.这个请求经过一系列的过滤器(Filter)(其中一个ActionContextCleanUp的可选过滤器,对于Struts2和其他框架的集成很有 帮助);
3.接着FilterDispatcher被调用,FilterDispatcher通过询问ActionMapper来决定这个请求是否需要调用某个Action;
4.如果ActionMapper决定调用某个Action,FilterDispatcher把请求处理提交给ActionProxy;
5.ActionProxy通过Configuration Manager 询问框架的配置文件,找到需要调用的Action类;
6.ActionProxy创建一个ActionInvocation的实例;
7.ActionInvocation实例使用命名模式来调用,在调用Action的过程后,涉及到相关的拦截器(Intercepter)的调用;
8.一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。