1.对比
2.功能
3.实现步骤
4.拦截器栈
1. 对比
1.1 与AOP对比
AOP在特定方法前后扩充(对ServiceImpl)
拦截器,请求的拦截,针对点是控制器方法(对Controller)
1.2 与Filter对比
拦截器只能拦截Controller
Filter可以拦截任何请求
2.功能:
- preHandle (进入控制器之前执行):如果返回值是false,则阻止进入控制器。
- postHandle (控制器执行完成,进入到jsp之前执行的内容):日志记录,敏感词语过滤
- afterCompletion (jsp执行完成后执行的内容):记录在执行过程中出现的异常,可以把异常记录到日志中
3.实现步骤:
- 新建类实现HandlerInterceptor
public class DemoInterceptor implements HandlerInterceptor {}
- 在springmvc.xml 配置拦截器需要拦截哪些控制器
2.1 拦截所有控制器
2.2 拦截特定的的url
1. 拦截所有控制器
<mvc:interceptors>
<bean class="com.steer.interceptor.DemoInterceptor"></bean>
</mvc:interceptors>
2. 拦截特定的的url
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/demo"/>
<mvc:mapping path="/demo1"/>
<mvc:mapping path="/demo2"/>
<bean class="com.steer.interceptor.DemoInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
4.拦截器栈
- 多个拦截器同时生效时,组成了拦截器栈
- 顺序:先进后出.
- 执行顺序和在springmvc.xml 中配置顺序有关
网友评论