直接按我的步骤走都没有问题:

1 配置自定义的拦截器:

package com.configs;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;/*** Created by Yousiqi on 2017/11/16.*/
@Component
public class UserInterceptor implements HandlerInterceptor {/*** 登录session key*/public final static String SESSION_KEY = "user";private static final Logger logger = LoggerFactory.getLogger(UserInterceptor.class);@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {HttpSession session = request.getSession();if (session.getAttribute(SESSION_KEY) == null){// 跳转登录(这里是重定向需要包括上下文的名也就是项目名)String viewUrl = "/DayIndicators/loginview";response.sendRedirect(viewUrl);}/*** 对来自后台的请求统一进行日志处理*/String url = request.getRequestURL().toString();String method = request.getMethod();String uri = request.getRequestURI();String queryString = request.getQueryString();System.out.println(request.getParameterMap());logger.info(String.format("request param: url: %s, method: %s, uri: %s, params: %s", url, method, uri, queryString));
//        return true;return true;}@Overridepublic void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {}@Overridepublic void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {}
}

2 接下来要让Spring boot知道我们配置了这一个拦截器并拦截:

package com.configs;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;/***file: CustomWebMvcConfigurerAdapter.java* Created by jiaobuchong on 12/23/15.*/
//利用Configuration注解来代替以往的xml配置方式
@Configuration
public class CustomWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter {@Overridepublic void addInterceptors(InterceptorRegistry registry) {InterceptorRegistration addInterceptor = registry.addInterceptor(new UserInterceptor());// 排除配置//这里的路径匹配不包括上下文路径//不拦截错误的页面addInterceptor.excludePathPatterns("/error");//不拦截登入的页面addInterceptor.excludePathPatterns("/login**");// 拦截配置//这里的路径匹配不包括上下文路径addInterceptor.addPathPatterns("/**");}
}

只需要这两步即可完成Spring Boot拦截器配置

Spring Boot拦截器(WebMvcConfigurerAdapter)相关推荐

  1. 使用spring boot拦截器实现青少年模式

    思路方法一: 便用Spring Boot拦截器采累计在线时间采实现青少年模式的步骤,可以参考以卜步骤: 1.创建一个拦截器类,实现Handlerlnterceptor 接口. 2.在拦截器类中,定义一 ...

  2. 解决Spring Boot 拦截器注入service为空的问题

    解决Spring Boot 拦截器注入service为空的问题 参考文章: (1)解决Spring Boot 拦截器注入service为空的问题 (2)https://www.cnblogs.com/ ...

  3. Spring boot拦截器登录检查

    拦截器 进行登录检查 从登录页面跳转到成功页面之后 为了防止表单重复提交 配置视图映射,利用重定向到成功页面 此时,在浏览器直接输入,配置的视图映射地址 也可以直接映射.跳转到成功页面 登录页面,也就 ...

  4. Spring Boot 拦截器

    (一)拦截器概述 1.1拦截器介绍 拦截器的作用类似于Servlet 中的Filter,都可以用于对处理器进行预处理和后处理.在Spring MVC 与Spring Boot 中使用拦截器一般是实现H ...

  5. Spring Boot 拦截器无效,不起作用

    这个问题一般是解决WebMvcConfigurerAdapter过时问题造成的.导致这个问题可能有两个原因:一个是拦截器写错了,另一个是拦截器配置错了. 1.需求是这样的 拦截所有的api请求,判断其 ...

  6. spring boot 拦截器获取controller返回的数据_高级码农Spring Boot实战与进阶之过滤器和拦截器的使用及其区别...

    众所周知的Spring Boot是很优秀的框架,它的出现简化了新Spring应用的初始搭建以及开发过程,大大减少了代码量,目前已被大多数企业认可和使用.这个专栏将对Spring Boot框架从浅入深, ...

  7. Spring Boot拦截器(Interceptor)详解

    写了那么久的博客,始于Python爬虫,目前专于Java学习,终于有了属于自己的小窝,欢迎各位访问我的个人网站. 文章目录 Interceptor 介绍 Interceptor 作用 自定义 Inte ...

  8. java 拦截器响应中取所有参数,spring boot拦截器中获取request post请求中的参数

    最近有一个需要从拦截器中获取post请求的参数的需求,这里记录一下处理过程中出现的问题. 首先想到的就是request.getParameter(String )方法,但是这个方法只能在get请求中取 ...

  9. Spring Boot 拦截器 请求参数MD5签名校验

    拦截器定义 /*** 拦截器 请求参数签名校验* Created by jiyang on 14:47 2017/12/14*/ @Component @Slf4j public class Para ...

最新文章

  1. kettle如何设置数据库共享
  2. fedora如何隐藏顶部状态栏_如何使用PDF Arranger来对PDF文件进行排版和修改
  3. python求众数程序_python求众数问题实例
  4. python决策树怎么选择_机器学习|决策树分类与python实现
  5. 信息学奥赛一本通(1131:基因相关性)
  6. 第一次使用水晶报表,柱状图的横竖坐标不会定位,怎么办?
  7. 我的firefox插件开发历程
  8. java复制数组函数_java 数组复制:System.arrayCopy 深入解析
  9. python百度文库免券下载
  10. QQ音乐播放地址 API
  11. Java 创建线程的三种方式总结
  12. 常见英语人名及其音标和中文翻译
  13. 梯度向量与梯度下降法
  14. [转] 理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)
  15. 完全删除iCloud注册的Apple ID
  16. Stata | 连续变量to类别变量
  17. python 实时录音_python实现录音功能(可随时停止录音)
  18. 基于JAVA政府采购线上招投标平台计算机毕业设计源码+系统+数据库+lw文档+部署
  19. Typora DIY 主题背景,以及透明pre代码块。
  20. C# 汉字转拼音 拼音转汉字 简体繁体互转

热门文章

  1. Shell命令-文件及内容处理之grep(egrep)、join
  2. iOS Runtime特性之关联对象
  3. Razor 视图引擎学习
  4. PaperWeekly 第十一期
  5. Mysql取分组中前N条记录
  6. 基于表单数据的封装,泛型,反射以及使用BeanUtils进行处理
  7. Bluetooth handsfree 和 headset 区别
  8. 在Web.Config中如何引入相对目录下的Access文件
  9. 管理磁盘文件系统(三)
  10. 你必须『收藏』的Github技巧