SpringMVC 自定义拦截器

本文介绍如何在SpringMVC中使用自定义拦截器,包括实现HandlerInterceptor接口的三个核心方法preHandle(), postHandle() 和 afterCompletion(),并演示了如何配置拦截器以排除特定URL。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringMVC 自定义拦截器
自定义拦截器

Spring MVC 可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现 HandlerInterceptor 接口。
该接口有以下 3 个方法:

(1)preHandle():
这个方法在业务处理器处理请求之前被调用,在该
方法中对用户请求 request 进行处理。如果程序员决定该拦截器对
请求进行拦截处理后还要调用其他的拦截器,或者是业务处理器去
进行处理,则返回 true;如果程序员决定不需要再调用其他的组件
去处理请求,则返回false

即:继续走下去,返回 true。如果我们要程序被拦截(例如没有登录访问某个页面),要返回 false。

(2)postHandle():
这个方法在业务处理器处理完请求后,但是 DispatcherServlet 向客户端返回响应前被调用,在该方法中对用户请求 request 进行处理。

即返回视图之前被调用。

(3)afterCompletion():
这个方法在 DispatcherServlet 完全处理完请
求后被调用,可以在该方法中进行一些资源清理的操作。

这里写图片描述

配置自定义拦截器

这里写图片描述

我们可以排除一些 url 不被拦截:

<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/**"/>
        <mvc:exclude-mapping path="/users/login"/>
        <bean class="com.english17.interceptor.LoginInterceptor"/>
    </mvc:interceptor>
</mvc:interceptors>

注意观察下图中拦截器被执行的顺序:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值