简介
SpringMVC中,拦截器相当于Servlet中的Filter,用于对处理器进行预处理和后处理
与过滤器的区别:
- 拦截器是AOP思想的具体应用
- 过滤器
- servlet规范中,任何java web工程都可使用
- 在url-pattern中配置了/*之后, 可以对所有要访问的资源进行拦截
- 拦截器
- SpringMVC框架自己的
- 只会拦截访问的控制器方法(效率更高), 静态资源如jsp,html,css,image,js不拦截
实现
方法: 实现HandlerInterceptor
接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| package zone.yiqing.config;
import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
public class MyInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("==========处理前=========="); return true; }
@Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("==========处理后=========="); }
@Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("==========清理=========="); } }
|