SpringMVC 学习-拦截器 HandlerInterceptor 类
一、拦截器 HandlerInterceptor 类的作用
SpringMVC 的拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。
二、怎么使用呢?
1. 创建 Java 类实现 HandlerInterceptor 接口
public class MyFilter implements HandlerInterceptor { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("资源访问之前 。。。"); return true; } public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("资源访问之后,视图渲染之前 。。。"); } public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("视图渲染完之后 。。。"); } }
2. 修改 SpringMVC 的配置文件,加上下面这段配置
<mvc:interceptors> <bean class="com.common.MyFilter" /> </mvc:interceptors>
三、有一点需要注意的
我们在实际开发中呢,能使用 Servlet 规范中的 Filter 过滤器的就用 Filter 实现,因为 HandlerInteceptor 只有在 SpringMVC 环境下才能使用。因此 Filter 是最通用的、最先应该使用的。如判断是否登录这种拦截器最好使用 Filter 来实现。