1、 DRY原则 don’t repeat yourself
2、 Struts2的拦截器是AOP设计哲学。使用拦截器的优势:目标代码无需手动调用目标方法,由系统自动完成。提供了更高层次的解耦。
3、 拦截器实现原理:拦截器的调用都是使用代理的方式来调用的。JDK动态代理的方式,拦截器只是普通的JAVA类。(学习JDK动态代理原理)
4、 AOP编程:获得业务处理过程的切面,在特定的切面通过系统自动插入特定的方法。三个重要的概念:
1) 目标对象:包含被拦截方法的原始对象
2) 被插入的处理方法:定义在拦截器中,在被拦截方法之前、之后自动调用
3) 代理对象:由系统创建代理对象
5、 配置拦截器:
<interceptor name=”” class=”” >
<param name=”” > value </param>
</interceptor>
定义拦截器栈
<interceptor-stack >
<interceptor-ref ..>
6、 使用拦截器
<action>内部使用拦截器
<default-interceptor-ref >配置系统默认拦截器
7、 自定义拦截器
1) 实现拦截器接口Interceptor
2) 继承抽象类AbstractInterceptor
使用拦截器:
<package …>
<interceptors …>
<interceptor name=’’ class=’’>
<param name=’’>value</param>
</interceptor>
</interceptors>
<action .. >
……..
<interceptor-ref name=’defaultStack’>
<interceptor-ref name=’my..’ >
</action>
3)对方法进行拦截MethodFilterInterceptor