SpringBoot拦截器的注册
(1)、编写拦截器
1 package cn.coreqi.config; 2 3 import org.springframework.util.StringUtils; 4 import org.springframework.web.servlet.HandlerInterceptor; 5 6 import javax.servlet.http.HttpServletRequest; 7 import javax.servlet.http.HttpServletResponse; 8 import javax.servlet.http.HttpSession; 9 10 public class LoginHandlerInterceptor implements HandlerInterceptor { 11 12 //在目标方法执行之前运行此方法 13 @Override 14 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 15 HttpSession session = request.getSession(); 16 String loginUser = (String) session.getAttribute("loginUser"); 17 if(StringUtils.isEmpty(loginUser)){ 18 //说明用户未登陆 19 request.setAttribute("msg","没有相应权限请先登陆"); 20 request.getRequestDispatcher("/index.html").forward(request,response); 21 return false; 22 } 23 return true; 24 } 25 }
(2)、对拦截器进行注册
1 package cn.coreqi.config; 2 3 import org.springframework.context.annotation.Bean; 4 import org.springframework.context.annotation.Configuration; 5 import org.springframework.web.servlet.LocaleResolver; 6 import org.springframework.web.servlet.config.annotation.*; 7 8 /** 9 * 扩展SpringMVC 10 * SpringBoot2使用的Spring5,因此将WebMvcConfigurerAdapter改为WebMvcConfigurer 11 * 使用WebMvcConfigurer扩展SpringMVC好处既保留了SpringBoot的自动配置,又能用到我们自己的配置 12 */ 13 //@EnableWebMvc //如果我们需要全面接管SpringBoot中的SpringMVC配置则开启此注解, 14 //开启后,SpringMVC的自动配置将会失效。 15 @Configuration 16 public class WebConfig implements WebMvcConfigurer { 17 @Override 18 public void addViewControllers(ViewControllerRegistry registry) { 19 //设置对“/”的请求映射到index 20 //如果没有数据返回到页面,没有必要用控制器方法对请求进行映射 21 registry.addViewController("/").setViewName("index"); 22 } 23 24 //注册拦截器 25 @Override 26 public void addInterceptors(InterceptorRegistry registry) { 27 //SpringMVC下,拦截器的注册需要排除对静态资源的拦截(*.css,*.js) 28 //SpringBoot已经做好了静态资源的映射,因此我们无需任何操作 29 registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**") 30 .excludePathPatterns("/index.html","/","/user/login"); 31 } 32 }
作者:奇
出处:https://www.cnblogs.com/fanqisoft/p/10324705.html
版权:本作品采用「本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。」许可协议进行许可。
分类:
Spring Boot
如果文章内容对您有所帮助,欢迎赞赏.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!