struts2的架构图
从最上面的类开始,也就是i 我们的核心过滤器strutsPrepareAndExecuteFilter
判断当前请求是否由struts2来处理,如果是就往else走,不由它来处理就走85行
创建数据中心
actionContext的由来(把valueStack创建出来在从里面取出来Context部分)
从valueStack中查找 包括Root和Context
从valueStack中查找 包括Root和Context
回到StrutsPrepareAndExecuteFilter源码
研究一下request的包装类
super调用父类的方法
提取信息
接着把信息传递进去 创建ActionProxy对象
把当前的invocation传过去
选择第二个interupt方法进去
189是放行的代码
为什么上面是if来循环拦截器的呢?因为拦截器把自己传过去不断调用invoke方法,算是递归的方式来实现的
request.getAttribute的获取方法
查找顺序