Struts2运行机制归纳

总结下来,可以是十步,这十步缩写成:客容容控控,代代调调客。

客(1)客户端发出请求Request到Action(Action其实就在Container里);

容(2)容器Container从web.xml的配置中获取对应的Controller名称;

容(3)容器Container通过过滤器(Struts2.1-使用FilterDispatcher,Strut2.1+使用StrutsPrepareAndExecuteFilter)找到该Controller方法;

控(4)控制器Controller找到ActionMapper,再次找到对应Action的方法;

控(5)控制器Controller调用动态代理,即ActionProxy;

代(6)执行动态代理ActionProxy通过struts2.xml文件,获取到action、interceptor拦截器和stack;

代(7)执行动态代理ActionProxy将request请求转发至执行调度器ActionInvocation;

调(8)执行调度器ActionInvocation调用action和interceptor拦截器;

调(9)执行调度器ActionInvocation根据Action配置信息获取到最终结果result;

客(10)客户端接收到来自执行调度器返还的result。

注:拦截器和过滤器的区别可参考 https://www.cnblogs.com/panxuejun/p/7715917.html

猜你喜欢

转载自blog.csdn.net/sinat_23030553/article/details/81065185