拦截器的简单使用

拦截器的使用

在这里插入图片描述

创建拦截器

首先,我们需要创建一个拦截器器的类,并且需要继承自HandlerInterceptor这一父类,这里我们假设我们需要做一个校验功能的拦截器
在这里插入图片描述

创建完成之后,我们可以给该类加一个注解:@Component,方便后续进行代码注入
我们就可以实现父类的方法了,下面我们来介绍三种方法
在这里插入图片描述

preHandle 目标方法执行前执行

postHandle 目标方法执行后执行

afterCompletion 视图渲染后执行

这里出现了一个新词,叫做目标方法,那么接下来,我们就来了解一下,什么是目标方法

拦截器使用场景

想要灵活正确的使用拦截器,我们就需要知道,拦截器的使用需要有目标方法执行方法
要知道,我们程序猿的代码中会有很多形形色色的方法,我们的拦截器的作用,就是这些方法执行的前后进行校验以及执行相应的代码,那么我们就称这些方法为目标方法,而拦截器需要完成的任务就被称为执行方法

了解上面的知识过后,我们就可以理解上述三个方法的作用了,我们可以在上述三个方法中实现各自要完成的功能后,拦截器的功能也就基本实现了

返回值

可以看到,我们实现的各个拦截器的返回值都是布尔类型,这不正合了拦截器的字面含义吗,拦截拦截,如果拦截器校验失败,程序肯定就执行失败了,就不能继续执行下面的功能了,就会被拦截,如果拦截器校验成功则会被拦截器放行.

注册拦截器

虽然我们已经成功的创建了一个拦截器,但是这样还不能让拦截器生效,我们还需要在项目中注册你的拦截器
现在,我们需要再次创建一个类,并且继承WebMvcConfigurer这个父类,然后实现addInterceptors这个方法
除此之外,我们还需要给当前类添加一个注解:@Configuration
在这里插入图片描述

在这里插入图片描述
接下来,将我们之前创建的拦截器注入进来
在这里插入图片描述
然后进行拦截器的注册,也就是将其当作参数传递给registry,这里的registry也就是addInterceptors中的参数
在这里插入图片描述
这样,我们也就可以在项目中正常使用拦截器了

运用拦截器

想要正确的使用拦截器,我们还得了解一些其他的知识点
也就是registry.addInterceptor的两个方法
在这里插入图片描述
.addPathPatterns()的功能是添加实现拦截器的网络路径
.excludePathPatterns();的功能是添加屏蔽拦截器的网络路径
这里给大家附上路径的使用方法:

拦截路径含义举例
/*⼀级路径能匹配/user,/book,/login,不能匹配/user/login
/**任意级路径能匹配/user,/user/login,/user/reg
/book/*/book下的⼀级路径能匹配/book/addBook,不能匹配/book/addBook/1,/book
/book/**/book下的任意路径能匹配/book,/book/addBook,/book/addBook/2不能匹配/user/login
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值