Struts2工作原理

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中的配置找到对应的返回结果。