学习笔记--MVC拦截器Interceptor

MVC拦截器配置步骤

1. 创建Interceptor拦截器类

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

1
2
3
4
5
6
7
8
9
10
11
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的配置文件中

1
2
3
4
5
6
7
8
9
10
11
12
13
<!--  配置拦截器  -->
    <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 @   小超和你  阅读(134)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
· 面试官:你是如何进行SQL调优的?
点击右上角即可分享
微信分享提示