下图描述了Struts 2 的整体结构
1、 在上图中客户端初始化一个指向Servlet容器(例如 Jetty 或者Resin)的请求
2 、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)
3 、接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action
4 、如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
5、 ActionProxy通过Configuration Manager询问框架的配置文件(从struts.xml文件开始),找到需要调用的Action类
6 、ActionProxy创建一个ActionInvocation的实例,ActionInvocation实例使用命名模式来调用
7、在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8 、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper
注: 在上述过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的。ObjectFactory是非常灵活的,当需要知道对象在框架中被创建时,我们可以在任何情况下提供我们自己的ObjectFactory。一种比较流行的实现ObjectFactory的方法是用Spring提供的ObjectFactory。
9 、调用视图之后,会再次以相反的顺序经过拦截器
10 、最后响应经过web.xml配置文件的过滤器,如果ActionContextCleanUp 存在,FilterDispatcher 将不会清除本地线程中的ActionContext,否则,将会清除所有本地线程。
参考:http://struts.apache.org/release/2.3.x/docs/big-picture.html
当然也有参考网上别人翻译的^ ^!
相关推荐
Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages 、Servlet、标签库以及面向对象的技术水准 Struts2和Struts1的不同
虽然Struts2号称是一个全新的框架,但这仅仅是相对Struts 1而言。Struts 2 与Struts 1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。从某种程度...
Struts2 运行流程分析,Struts2 运行流程分析,Struts2 运行流程分析
Struts2的工作流程及struts2配置文件中各属性的含义
使用Struts2完成客户列表显示的功能.。Struts2是一种基于MVC 模式的轻量级Web 框架,它自问世以来,就受到了广大 Web 开发者的 关注,并广泛应用于各种企业系统的开发中。 ...Struts2 的执行流程:
我把OGNL表达式的执行流程走了一遍,发现Struts2开发人员在对ONGL表达式中的赋值操作时将判断条件写反了,这样一来就直接导致了前边做的所有的安全策略,在
使用Struts2完成客户列表显示的功能.。Struts2是一种基于MVC 模式的轻量级Web 框架,它自问世以来,就受到了广大 Web 开发者的 关注,并广泛应用于各种企业系统的开发中。 ...Struts2 的执行流程:
使用Struts2完成客户列表显示的功能.。Struts2是一种基于MVC 模式的轻量级Web 框架,它自问世以来,就受到了广大 Web 开发者的 关注,并广泛应用于各种企业系统的开发中。 ...Struts2 的执行流程:
使用Struts2完成客户列表显示的功能.。Struts2是一种基于MVC 模式的轻量级Web 框架,它自问世以来,就受到了广大 Web 开发者的 关注,并广泛应用于各种企业系统的开发中。 ...Struts2 的执行流程:
struts2工作流程struts2工作流程struts2工作流程struts2工作流程struts2工作流程struts2工作流程struts2工作流程struts2工作流程struts2工作流程
struts-sprint-hibernate 开发案例介绍 介绍了struts-sprint-hibernate 模式的开发流程
struts2入门实例和工作(流程)原理struts2入门实例和工作(流程)原理struts2入门实例和工作(流程)原理struts2入门实例和工作(流程)原理
包含了struts2的处理流程以及struts2的配置文件,并附有处理流程显示图,更加清楚直观。
Struts 2的工作流程相对于Struts 1要简单,与WebWork框架基本相同,所以说Struts 2是WebWork的升级版本。Struts 2框架按照模块来划分,可以分为Servlet Filters、Struts核心模块、拦截器和用户实现部分。
这张流程图 深刻的描述了 struts2的执行流程 帮助了解Struts2
一个请求在Struts 2框架中的处理大概分为以下几个步骤。 客户端提交一个(HttpServletRequest)请求,如上文在浏览器中输入 http://localhost: 8080/bookcode/ch2/Reg.action就是提交一个(HttpServletRequest)...
Struts工作流程
Struts2的工作流程及配置文件