学习笔记--MVC拦截器Interceptor

MVC拦截器配置步骤

1. 创建Interceptor拦截器类

该类需要实现HandlerInterceptor类,复写其中的方法。

public interface HandlerInterceptor {
    default boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        return true;
    }

    default void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {
    }

    default void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
    }
}

  

preHandle:在目标方法之前被调用。

postHandle:在目标方法执行之后,视图返回之前执行。

afterCompletion:在流程执行完毕之后执行。

2.配置Spring-mvc.xml

因为拦截器属于MVC的一部分,所以要配在mvc的配置文件中

<!--  配置拦截器  -->
    <mvc:interceptors>
        <mvc:interceptor>
            <!--    对哪些资源执行拦截操作       -->
            <mvc:mapping path="/**"/>
            <bean class="com.xc.interceptor.MyInterceptor1"/>
        </mvc:interceptor>
        
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <bean class="com.xc.interceptor.MyInterceptor2"/>
        </mvc:interceptor>
    </mvc:interceptors>

  

可以配置多个拦截器,拦截器的执行过程会按照xml中配置的顺序执行。

<mvc:mapping path="/**"/>代表所有的路径都需要通过拦截器。

 

一般PreHandler使用较多,主要是对请求中的参数进行核验,postHandler主要是对携带的ModelAndView 修改其中的数据,或者对符合条件的数据跳转不同的页面等。

posted @ 2022-02-28 17:46  小超和你  阅读(140)  评论(0)    收藏  举报