java SpringMvc中拦截器的应用
什么是拦截器
拦截器(Interceptor)是SpringMVC中的组件。
可以使很多个请求被处理时,都会执行拦截器中的代码。
拦截器可以选择阻止执行或放行。
举个栗子:

基本使用
在SpringMVC中实现HandlerInteceptor拦截器接口,这个类就是一个拦截器类。

利用拦截器最核心的在用控制preHandle方法的返回值,返回true就成功了,返回false就表示进行拦截处理了。
实例

首先,创建一个类继承拦截器
public class DemoInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("prehandle");
return true;
}
//在控制器之后执行
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("posthandle");
}
//在视图处理后执行
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("afterComplete");
}
}
返回true继续执行
重构SpringMvcConfig类,才能工作
@Configuration
@ComponentScan("cn.tedu.controller")
//WebMvcConfigurer 是springmvc的配置模板,配合注解一起使用
@EnableWebMvc
public class SpringMvcConfig implements WebMvcConfigurer {
//重写配置模板中的拦截器方法
@Override
public void addInterceptors(InterceptorRegistry registry) {
//创建DemoInterceptor对象,注册到SpringMVC中
//addPathPatterns()方法到作用是约定拦截器到URL
//注册一个拦截器,在请求/home/index.do时候执行拦截器到功能
registry.addInterceptor(new DemoInterceptor()).addPathPatterns("/home/index.do");
}
}
实现WebMvcConfigurer重写配置模板中的拦截器方法
WebMvcConfigurer 是springmvc的配置模板,配合@EnableWebMvc注解一起使用
创建DemoInterceptor对象,注册到SpringMVC中。
addPathPatterns()方法到作用是约定拦截器到URL
执行查看拦截器执行循序

总结
到此这篇关于java SpringMvc中拦截器的应用的文章就介绍到这了,更多相关java SpringMvc拦截器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SpringBoot使用自动配置xxxAutoConfiguration
这篇文章介绍了SpringBoot自动配置xxxAutoConfiguration的使用方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-12-12
基于Java SpringBoot的前后端分离信息管理系统的设计和实现
当今社会,人才的流动速度大大增加,因此也对党建工作的管理层面工作带来了空前且复杂的挑战,从而使得如何高效的开展管理党建工作成为了亟待解决的问题。本文将介绍通过Java SpringBoot实现前后端分离信息管理系统,感兴趣的同学可以了解一下2021-11-11
Springboot+redis+Interceptor+自定义annotation实现接口自动幂等
本篇文章给大家介绍了使用springboot和拦截器、redis来优雅的实现接口幂等,对于幂等在实际的开发过程中是十分重要的,因为一个接口可能会被无数的客户端调用,如何保证其不影响后台的业务处理,如何保证其只影响数据一次是非常重要的,感兴趣的朋友跟随小编一起看看吧2019-07-07
Spring的嵌套事务(Propagation.NESTED)到底是个啥案例代码讲解
SavePoint是数据库事务中的一个概念, 可以将整个事务切割为不同的小事务,可以选择将状态回滚到某个小事务发生时的样子,本文通过案例代码讲解Spring的嵌套事务(Propagation.NESTED)到底是个啥,感兴趣的朋友跟随小编一起看看吧2023-01-01


最新评论