strust2的请求运行流程
2016-03-30 18:14
148 查看
1、客户端发送请求
2、通过web.xml后调用strutsPrepareAndExecuteFilter
2、请求先通过ActionContextCleanUp(它主要清理当前线程的ActionContext和Dispatcher),之后执行FilterDispatcher(主要通过AcionMapper来决定需要调用哪个Action)。
3、FilterDispatcher通过ActionMapper来决定这个Request需要调用哪个Action
。
4、如果ActionMapper决定调用某个Action,FilterDispatcher把请求的处理交给ActionProxy,这儿已经转到它的Delegate--Dispatcher来执行
5、ActionProxy根据ActionMapping和ConfigurationManager找到需要调用的Action类
6、ActionProxy创建一个ActionInvocation的实例
7、ActionInvocation调用真正的Action,当然这涉及到相关拦截器的调用
8、Action执行完毕,ActionInvocation创建Result并返回,当然,如果要在返回之前做些什么,可以实现PreResultListener。添加PreResultListener可以在Interceptor中实现。
相关文章推荐
- $Android制作和使用Nine-Patch图片
- Mybatis Physical Pagination
- sqlserver多表连接更新
- 图解VC++绘制数学曲线
- 2016年腾讯实习生校园招聘-电面2
- UVA - 1608 Non-boring sequences 分治"中途相遇"
- Java遍历一个目录下的所有文件
- HDU-1827-Summer Holiday(强连通分量)
- 算法竞赛前 准备文档
- php thinkphp+pgsql M('table')->add()不能正常的返回新增记录的主键id值。
- Lucene初识
- Spring之十一 整合quartz触发器
- 实现三列布局
- 【 D3.js 入门系列 — 0 】 简介和安装
- 设计模式六大原则/接口设计六大原则 之 迪米特法则(转)
- SDN定义网络
- [数据结构]Linked_queue
- lucene index 锁
- 74.深拷贝和完全拷贝对比的探究
- k60正交解码FTM1 FTM2 困惑