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

Struts2运行流程分析

2015-12-08 22:39 423 查看
一.Struts2运行流程图:



二.运行流程分析:

1. 请求发送给StrutsPrepareAndExecuteFilter
2.StrutsPrepareAndExecuteFilter询问ActionMapper:该请求是否是一个Struts2请求(即是否返回一个非空的ActionMapping对象)
3. 若ActionMapper认为该请求是一个Struts2请求,则StrutsPrepareAndExecuteFilter把请求的处理交给ActionProxy
4. ActionProxy通过ConfigurationManager 读取框架的配置文件,确定需要调用的Action类及Action方法
5. ActionProxy创建一个ActionInvocation的实例,并进行初始化
6. ActionInvocation实例在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
7.Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。调用Result的execute方法,渲染结果。在渲染的过程中可以使用Struts2框架中的标签。
8. 执行各个拦截器invocation.invoke()之后的代码
9. 把结果发送到客户端
三、相关API

•ActionMapping:Simpleclass that holds the action mapping information used to invoke a Struts action.The name and namespace arerequired
•ActionMapper:Whengiven anHttpServletRequest, theActionMapper
mayreturn null if no action invocation request matches, or it may return anActionMapping thatdescribes an action invocation for the framework totry
•ActionProxy:ActionProxy isan extra layer betweenXWork andthe
action so that different proxies are possible.
•ActionInvocation:AnActionInvocation represents the execution state of an Action. It holds the
Interceptors and the Action instance. By repeated re-entrant execution of the invoke() method,initially by theActionProxy,then by the Interceptors, the Interceptors are all executed, and then
the Action and the Result.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: