首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

struts2 Action创办过程分析

2012-06-26 
struts2 Action创建过程分析//源头:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFil

struts2 Action创建过程分析
//源头:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
===================================
第零步:Struts Filter初始化
===================================
关键概念:
InitOperations
PrepareOperations
ExecuteOperations
FilterHostConfig
Dispatcher

===================================
第一步:ActionMapping创建
===================================
URL:http://localhost:8080/basic/My.do
对于浏览器发出的每个新的request,都会创建一个ActionMapping对象,
这里的request、response、servletContext等servlet基本元素,都是经过应用服务器(如Tomcat)包装过的实现


struts2的所有细节都包含在Dispatcher的serviceAction方法中
在详细分析之前,先介绍一个很重要的类:ActionContext,该类利用ThreadLocal持有一个action执行过程中要用到的所有对象,如session,application,valueStack...

回到Dispatcher.serviceAction(...):
(1)创建ValueStack,ValueStack可以看作是呈现层的数据源(有待研究...)
(2)创建ActionProxy

createAction() {//...     action = objectFactory.buildAction(proxy.getActionName(),     proxy.getNamespace(), proxy.getConfig(), contextMap);//...}        List<InterceptorMapping> interceptorList = new ArrayList<InterceptorMapping>(proxy.getConfig().getInterceptors());        interceptors = interceptorList.iterator();

===================================
action创建过程大致分析完毕。
待补充的内容
(1)objectFactory.buildAction的执行过程(struts2 & spring)
(2)action执行过程

热点排行