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

时间: 2024-07-31 13:53:02

SpringBoot拦截器的注册的相关文章

SpringBoot拦截器中service或者redis注入为空的问题

原文:https://my.oschina.net/u/1790105/blog/1490098 这两天遇到SpringBoot拦截器中Bean无法注入问题.下面介绍我的思考过程和解决过程: 1.由于其他bean在service,controller层注入一点问题也没有,开始根本没意识到Bean无法注入是在拦截器中无效的问题,一直在查找注解指定的包在哪里配置的,然而却找不到配置,Springboot是用java类的形式加载配置的.在网络的某个角落看到这样的说法: SpringBoot项目的Bea

SpringBoot拦截器中Bean无法注入(转)

这两天遇到SpringBoot拦截器中Bean无法注入问题.下面介绍我的思考过程和解决过程: 1.由于其他bean在service,controller层注入一点问题也没有,开始根本没意识到Bean无法注入是在拦截器中无效的问题,一直在查找注解指定的包在哪里配置的,然而却找不到配置,Springboot是用java类的形式加载配置的.在网络的某个角落看到这样的说法: SpringBoot项目的Bean装配默认规则是根据Application类所在的包位置从上往下扫描!"Application类&

springboot 拦截器与servlet的过滤器

springboot 是spring框架的二次升华,简化了配置,提高了开发效率.拦截器是spring 提供的基于AOP思想的实现.过滤器filter是servlet的API,比较依赖servlet,他们有不同也有一些相似的地方. 1Filter基于servlet ,主要用于servlet存在的环境.拦截器用于servlet,也可以用于其他环境中. 2Filter是servlet规范来提供支持,拦截器是spring框架来提供支持. 3Filter的使用主要在servlet的前后,拦截器可以深入到每

SpringBoot 拦截器/过滤器/监听器

SpringBoot 拦截器 | 过滤器 | 监听器 1.拦截器:拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作.拦截是AOP的一种实现策略.一般用于拦截用户登录,用户验证等. 2.过滤器:它可以对客户的请求进行处理.处理完成后,它会交给下一个过滤器处理,这样,客户的请求在过滤链里逐个处理,直到请求发送到目标为止.一般用于对数据的处理. 3.监听器: 配置拦截器: 实现的 HandlerInterc

SpringBoot 拦截器(Interceptor)的使用

拦截器intercprot  和 过滤器 Filter 其实作用类似 在最开始接触java 使用struts2的时候,里面都是filter 后来springmvc时就用interceptor 没太在意过区别,反正就是起检查作用的, 仔细阅读 过滤器(filter)和拦截器(interceptor)的区别 后明白了不少 最重要的要记住他们的执行顺序: 先filter 后 interceptor 过滤前-拦截前-action执行-拦截后-过滤后 在了解上面的信息后,本文讲interceptor的使用

SpringBoot拦截器

在实际开发中,总存在着这样的场景,比如拦截请求的ip地址,或者在所有的请求都返回相同的数据,如果每一个方法都写出相同数据固然可以实现,但是随着项目的变大,重复的代码会越来越多,所以在这种情况我们可以用拦截器来实现. 最近一直在研究thymeleaf,越发的感觉这个很好用,所以这篇文章也选择结合这个来使用. 新建项目,pom文件如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&quo

springboot拦截器注入bean失败实例

如题,在spring拦截器中注入了一个service,结果运行时报了空指针: 2020-01-03 09:26:33.646 |-DEBUG [http-nio-9988-exec-3] org.springframework.web.servlet.DispatcherServlet [1100] -| Failed to complete request: java.lang.NullPointerException 2020-01-03 09:26:33.648 |-ERROR [http

Spring-Boot:拦截器注解范例

package com.example.aop; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.Target; import static java.lang.annotation.RetentionPolicy.RUNTIME; /** * Cre

springboot拦截器实现

package webapp.dao.bcf; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.config.annotat