spring拦截器和过滤器
1.什么是拦截器 拦截器(Interceptor): 用于在某个方法被访问之前进行拦截,然后在方法执行之前或之后加入某些操作,其实就是AOP的一种实现策略。它通过动态拦截Action调用的对象,允许开发者定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取action中可重用的部分的方式。 2.拦截器作用 拦截用户的请求并进行相应的处理,比如:判断用户是否登陆,是否在可购买时间内,记录日志信息等。 3.Spring中两种实现方式 通过实现HandlerInterceptor接口, 一般通过继承HandlerInterceptorAdapter抽象类实现。 DispatcherServlet处理流程:DispatcherServlet处理请求时会构造一个Excecution Chain,即(可能多个)拦截器和真正处理请求的Handler 即Interceptor是链式调用的。 preHandle: 在执行Handler之前进行,即Controller方法调用之前执行,主要进行初始化操作。 postHandle: 在执行Handler之后进行,即Controller 方法调用之后执行,主要对ModelAndView对象进行操作。 afterCompletion: 在整个请求结束之后