拦截器可以动态地拦截发送到指定的Action的请求,通过拦截器机制,我们可以在Action执行的前后插入某些代码,通过这种方式,就可以把多个Action中需要重复指定的代码提取出来,放在拦截器里定义,从而提供更好的代码重用性。
DRY规则:Don‘t Repeat Yonrself,不要书写重复的代码
配置拦截器:
定义:<interceptor name="拦截器名" class="拦截器实现类" />
指定参数:<interceptor name="拦截器名" class="拦截器实现类" >
<param name="参数名">参数值</param>
</interceptor>
拦截器栈:<interceptor-stack name="拦截器栈名">
<interceptor-ref name="拦截器1"></interceptor-ref>
<interceptor-ref name="拦截器2"></interceptor-ref>
........
</interceptor-stack>
使用拦截器:<interceptor-ref name="拦截器名">
<param name="参数名">参数值</param>
</interceptor-ref>
配置默认的拦截器:<default-interceptor-ref name="拦截器名或拦截器栈名"/>
注:每个包元素中只能有一个默认的拦截器
系统为拦截器指定参数有两个时机:
1:定义拦截器时指定参数值:这种参数值将作为拦截器参数的默认参数值
2:使用拦截器时指定参数值:在配置Action的时候为拦截器参数指定值。
如果在两个时机为同一个参数指定了不同的参数值,则使用拦截器时指定的参数值将会覆盖默认的参数值。
<!--EndFragment-->