一、struts2 原理图
二、struts原理图讲解
1、客户端发来一个httprequest的请求
2、这个请求进过一系列的过滤器(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)
3、接着调用 filteraDisPatcher过滤器 ,filterdispatcher询问ActionMapper来决定是否调用这个action
4、如果filterdisPatcher决定调用这个action ,filterdisPatcher会把这个请求交给ActionProxy去处理。
5、ActionProxy通过configurationManager询问框架的配置文件struts.xml 然后找到需要调用的action类
6、然后ActionProxy 创建一个ActionInvocation实例
7、ActionInvocation实例 使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用
8、一旦action调用完毕,ActionInvocaiton 根据配置文件找到对应的返回结果在通过httpserveltResPonset返回给客户端。
在上述过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的。