Struts执行流程图如下所示:


系统 :

1,整体的组织体结构
2,执行流程
3,特性


执行流程:
1,一个初始的请求到达了servlet容器
2,这个请求要通过一系列的过滤链
3,这个链包括ActionContextCleanUp过滤器,这个过滤器用于当集成了SiteMesh Plugin技术时,
4,接着FilterDispatcher被调用,
5,FilterDispatcher按顺序查询这个ActionMapper去决定这个请求是否应该调用一个Action
6,如果这个ActionMapper决定了一个Action应该被调用,FilterDispatcher就委托控制给ActionProxy
7,这个ActionProxy就会查询框架的配置文件struts.xml
8,这个ActionProxy创建了一个ActionInvocation对象
9,ActionInvocation对象的责任是命令模式的实现,这个包括在调用自己的Action之前调用任何拦截器
10,一旦这个Action返回结果,这个ActionInvocation就负责在struts.xml文件中查找和Action result code相关联的结果
11,这个结果被执行,通常(但不总是)这个结果会被以jsp或者FreeMarker的形式被返回
12,当返回的时候,这个模板可以使用框架提供的struts标记
13,其他的一些组件会同ActionMapper协同工作,以返回合适的URL作为额外的请求。
14,拦截器会再次被执行,最后,这个响应将会通过web.xml中的过滤配置被返回
15,如果这个ActionContextCleanUp过滤器存在的话,这个FilterDispatcher将不会清除
这个ThreadLocal "ActionContext"
16,如果这个ActionContextCleanUp过滤器不存在,这个FilterDispatcher将不会清除所有的
ThreadLocal


特性:
1,在这个架构中的所有对象都会被ObjectFactory对象创建,这个ObjectFactory对象是可插拔式,我们可以提供我们自己的ObjectFctory,
当需要知道这些对象什么时候被创建时,一个流行的ObjectFactory被实现通过Spring插件
2,动态代理


对于整体结构这个方面还没有相关的学习资料,如果有这方面资料请介绍给我qq362601125



Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐