Spring拦截器(接SpringMVC)
## SpringMVC拦截器
##### 拦截器的作用
SpringMVC中的拦截器类似于之前学习的javaWeb中servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。
> 拦截器将会按一定的顺序结成一条链,称拦截器链(Interceptor Chain),在访问被拦截的方法或字段时,拦截器链中的拦截器会按照之前定义的顺序被调用。拦截器也是AOP思想的具体实现。
##### 拦截器与过滤器的区别
##### 自定义拦截器的步骤
1、创建拦截器类实现HandlerInterceptor接口
而在接口中最重要的一个实现方法是**`preHandle`方法**,它是在目标方法执行前,就执行。其中它需要有返回值,false或true 。false是禁止通行被拦截下来不允许通过。true是允许资源通过
2、配置拦截器
配置拦截器,就是我们需要把刚刚创建的拦截器类的配置到spring-mvc.xml中。
```xml
<!-- 5、配置拦截器 -->
<mvc:interceptors>
<!--第一个拦截器-->
<mvc:interceptor>
<!-- 配置对那些进行拦截-->
<mvc:mapping path="/**"/>
<!-- 配置那些资源不用进行拦截-->
<mvc:exclude-mapping path="/user/login"/>
<bean class="com.qinfeng.interceptor.PrivilegeInterceptor"/>
</mvc:interceptor>
<!--第二个拦截器-->
<!--<mvc:interceptor>
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/user/login"/>
<bean class="com.qinfeng.interceptor.PrivilegeInterceptor"/>
</mvc:interceptor>-->
</mvc:interceptors>
```
在配置文件可以配置多个拦截器,但是他们有一个执行顺序,`preHandle`方法是在上面的先执行,其它方法`postHandle`和`afterComletion`是下面的拦截器先执行,(先进后出)
3、测试拦截器的拦截效果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!