您的位置:首页 > 编程语言 > Java开发

struts2架构及请求流程分析

2011-05-19 16:47 585 查看
1.struts2架构图:



请求首先通过Filter
chain,Filter主要包括ActionContextCleanUp,它主要清理当前线程的ActionContext和
Dispatcher;FilterDispatcher主要通过AcionMapper来决定需要调用哪个Action。

ActionMapper取得了ActionMapping后,在Dispatcher的serviceAction方法里创建
ActionProxy,ActionProxy创建ActionInvocation,然后ActionInvocation调用
Interceptors,执行Action本身,创建Result并返回,当然,如果要在返回之前做些什么,可以实现
PreResultListener。

2. Struts2请求流程

1、客户端发送请求

2、请求先通过ActionContextCleanUp-->FilterDispatcher

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中实现,不知道其它还有什么方式?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: