Struts2 源代码学习 (一)

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



转载于:https://www.cnblogs.com/mengjianzhou/archive/2012/04/06/5986855.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值