struts2的架构图

从最上面的类开始,也就是i 我们的核心过滤器strutsPrepareAndExecuteFilter
2018.11.26 struts2流程源码

判断当前请求是否由struts2来处理,如果是就往else走,不由它来处理就走85行
2018.11.26 struts2流程源码

创建数据中心
2018.11.26 struts2流程源码

2018.11.26 struts2流程源码

actionContext的由来(把valueStack创建出来在从里面取出来Context部分)
2018.11.26 struts2流程源码

从valueStack中查找 包括Root和Context
2018.11.26 struts2流程源码
2018.11.26 struts2流程源码

从valueStack中查找 包括Root和Context
2018.11.26 struts2流程源码
2018.11.26 struts2流程源码

回到StrutsPrepareAndExecuteFilter源码

研究一下request的包装类

2018.11.26 struts2流程源码

2018.11.26 struts2流程源码

2018.11.26 struts2流程源码

super调用父类的方法
2018.11.26 struts2流程源码

2018.11.26 struts2流程源码

2018.11.26 struts2流程源码

2018.11.26 struts2流程源码

2018.11.26 struts2流程源码

提取信息
2018.11.26 struts2流程源码

接着把信息传递进去 创建ActionProxy对象
2018.11.26 struts2流程源码

2018.11.26 struts2流程源码

2018.11.26 struts2流程源码

把当前的invocation传过去
2018.11.26 struts2流程源码

选择第二个interupt方法进去
2018.11.26 struts2流程源码

189是放行的代码
2018.11.26 struts2流程源码

为什么上面是if来循环拦截器的呢?因为拦截器把自己传过去不断调用invoke方法,算是递归的方式来实现的
2018.11.26 struts2流程源码

request.getAttribute的获取方法

查找顺序
2018.11.26 struts2流程源码

完整流程图

2018.11.26 struts2流程源码

相关文章:

  • 2021-06-25
  • 2021-12-25
  • 2021-10-10
  • 2022-02-09
  • 2021-07-08
  • 2022-12-23
猜你喜欢
  • 2022-02-09
  • 2022-02-09
  • 2021-11-07
  • 2021-12-10
  • 2021-09-08
相关资源
相似解决方案