struts2的拦截器
1 struts2的拦截器只能拦截Action,拦截器是AOP的一种思路,可以使我们的系统架构
更松散(耦合度低),可以插拔,容易互换,代码不改变的情况下很容易满足客户需求
其实体现了ocp
更松散(耦合度低),可以插拔,容易互换,代码不改变的情况下很容易满足客户需求
其实体现了ocp
2 如何实现拦截器?(整个拦截器体现了责任链模式,Filter也体现了责任链模式)
* 继承AbstractInterceptor(体现了缺省适配器模式)
* 实现Interceptor
* 继承AbstractInterceptor(体现了缺省适配器模式)
* 实现Interceptor
3 如果自定义了拦截器,缺省拦截器会失败,必须现实引用struts2默认拦截器
4 拦截器栈,多个拦截器的和
5 定义缺省拦截器<default-interceptor-ref>,所有的Action都会使用
6 拦截器的执行原理,在ActionInvocation中有一个成员变量Iterator,这个Iterator中
保存了所有拦截器,每次都会去的Iterator进行next,如果找到了拦截器就会执行,
否则就执行Action。都执行完成后,拦截器要出栈。(就是拦截器的方法弹出栈)
保存了所有拦截器,每次都会去的Iterator进行next,如果找到了拦截器就会执行,
否则就执行Action。都执行完成后,拦截器要出栈。(就是拦截器的方法弹出栈)