本文摘自:http://www.paper.edu.cn/ Struts2 框架应用研究 吕旭民 北京邮电大学网络教育学院,北京
虽然 Struts2 被业界称为是一个全新的框架,但这仅仅是相对Struts1 而言。Struts2 与Struts1 相比,确实有很多革命性的改进,但它并不是全新的框架,而是在另一个赫赫有名的框架:WebWork 基础上发展起来的。由于Struts1 是应用最早的一种MVC 架构,经过多年的考验,被广大Java 开发者所接受,其稳定性和可用性毋庸置疑。相Struts1 对来说,WebWork 兴起时间比较短,要被广大开发者接受还需要一定的时间,但凭借其先进的技术优势,WebWork也逐渐受到业界的青睐。Apache 接手WebWork 项目后,吸取Struts1 和WebWork 两者的优势,成功推出了Struts2。
Struts2 的工作流程如图:

一个请求在 Struts2 框架中的处理过程可分为如下几个步骤:
(1) 用户提交一个HttpServletRequest 请求;
(2) 请求被顺序提交到ActionContextCleanUp、Other Fillers (SiteMesh 等)、FilterDispatcher
等三层过滤器;
(3) 核心控制器FilterDispatcher 询问ActionMapper 是否需要调用某个Action 来处理这个
请求,如果ActionMapper 决定需要调用某个Action,FilterDispatcher 就把请求交给
ActionProxy 处理;
(4) ActionProxy 通过Configuration Manager(Struts.xml)询问框架配置文件,找到要调用
的Action 类;
(5) ActionProxy 创建一个ActionInvocation 实例,ActionInvocation 根据配置加载Action
相关的拦截器(Interceptor),同时通过代理模式调用Action;
(6) Action 执行完后,ActionInvocation 根据struts.xml 中的配置找到对应的返回结果result。
223

被折叠的 条评论
为什么被折叠?



