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

版权:本作品采用「本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。」许可协议进行许可。

posted @   SpringCore  阅读(7855)  评论(0编辑  收藏  举报
编辑推荐:
· 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框架的用法!
more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示