STRUTS系列之 工作原理

这里写图片描述
流程说明:

  1. 一个初始的请求到达Servlet容器后,经过ActionContextCleanUp过滤器,标准的过滤器,和FilterDispatcher(2.1.3版本之后是StrutsPrepareAndExecuteFilter )。
  2. FilterDispatcher轮询ActionMapper是否调用一个Action。
  3. 如果ActionMapper确定有Action被调用,返回ActionMapping对象。
  4. FilterDispatcher将控制权委派给ActionProxy。
  5. ActionProxy询问框架的配置文件(struts.xml)并创建ActionInvocation,设置ActionInvocation上下文,调用invoke方法。
  6. 然后ActionInvocation先依次调用配置的拦截器的intercept方法,再去调用Action实例的execute方法。
  7. action执行返回后,ActionInvocation根据结果码去配置文件寻找对应的result。
  8. ActionInvocation的invoke()方法将控制权返回给拦截器(拦截器执行顺序与之前相反)。
  9. 拦截器全部执行完毕后,ActionInvocation向ActionProxy返回一个String类型的结果码,ActionProxy清除状态并返回。
ActionContextCleanUp作用

延长Action属性的生命周期,包括自定义属性,以便在jsp访问,若无该过滤器,jsp无法访问。

ActionMapper和ActionMapping

ActionMapper是在HTTP和action请求之间提供一个映射,当请求到达时,ActionMapper会寻找对应的Action,若有则返回一个描述Action的ActionMapping,否则返回null。
ActionMapping本质是数据传输对象,将Action类和执行的方法收集在一起。

ActionContext

ActionContext是Action执行的上下文,包含session,application,local,parameters等。ActionContext是线程本地的,所以是线程安全的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值