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 来实现。

原文地址:https://www.cnblogs.com/libra0920/p/6138697.html