山西网站建设运营公司,太原seo顾问,外贸网站服务器,长沙广告设计公司排名拦截器的简单使用 拦截器的使用创建拦截器preHandle 目标方法执行前执行postHandle 目标方法执行后执行afterCompletion 视图渲染后执行 拦截器使用场景返回值注册拦截器运用拦截器 拦截器的使用 创建拦截器
首先,我们需要创建一个拦截器器的类,并且需要继承自HandlerIntercep… 拦截器的简单使用 拦截器的使用创建拦截器preHandle 目标方法执行前执行postHandle 目标方法执行后执行afterCompletion 视图渲染后执行 拦截器使用场景返回值注册拦截器运用拦截器 拦截器的使用 创建拦截器
首先,我们需要创建一个拦截器器的类,并且需要继承自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