Spring Boot拦截器(WebMvcConfigurerAdapter)
直接按我的步骤走都没有问题:
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)相关推荐
- 使用spring boot拦截器实现青少年模式
思路方法一: 便用Spring Boot拦截器采累计在线时间采实现青少年模式的步骤,可以参考以卜步骤: 1.创建一个拦截器类,实现Handlerlnterceptor 接口. 2.在拦截器类中,定义一 ...
- 解决Spring Boot 拦截器注入service为空的问题
解决Spring Boot 拦截器注入service为空的问题 参考文章: (1)解决Spring Boot 拦截器注入service为空的问题 (2)https://www.cnblogs.com/ ...
- Spring boot拦截器登录检查
拦截器 进行登录检查 从登录页面跳转到成功页面之后 为了防止表单重复提交 配置视图映射,利用重定向到成功页面 此时,在浏览器直接输入,配置的视图映射地址 也可以直接映射.跳转到成功页面 登录页面,也就 ...
- Spring Boot 拦截器
(一)拦截器概述 1.1拦截器介绍 拦截器的作用类似于Servlet 中的Filter,都可以用于对处理器进行预处理和后处理.在Spring MVC 与Spring Boot 中使用拦截器一般是实现H ...
- Spring Boot 拦截器无效,不起作用
这个问题一般是解决WebMvcConfigurerAdapter过时问题造成的.导致这个问题可能有两个原因:一个是拦截器写错了,另一个是拦截器配置错了. 1.需求是这样的 拦截所有的api请求,判断其 ...
- spring boot 拦截器获取controller返回的数据_高级码农Spring Boot实战与进阶之过滤器和拦截器的使用及其区别...
众所周知的Spring Boot是很优秀的框架,它的出现简化了新Spring应用的初始搭建以及开发过程,大大减少了代码量,目前已被大多数企业认可和使用.这个专栏将对Spring Boot框架从浅入深, ...
- Spring Boot拦截器(Interceptor)详解
写了那么久的博客,始于Python爬虫,目前专于Java学习,终于有了属于自己的小窝,欢迎各位访问我的个人网站. 文章目录 Interceptor 介绍 Interceptor 作用 自定义 Inte ...
- java 拦截器响应中取所有参数,spring boot拦截器中获取request post请求中的参数
最近有一个需要从拦截器中获取post请求的参数的需求,这里记录一下处理过程中出现的问题. 首先想到的就是request.getParameter(String )方法,但是这个方法只能在get请求中取 ...
- Spring Boot 拦截器 请求参数MD5签名校验
拦截器定义 /*** 拦截器 请求参数签名校验* Created by jiyang on 14:47 2017/12/14*/ @Component @Slf4j public class Para ...
最新文章
- kettle如何设置数据库共享
- fedora如何隐藏顶部状态栏_如何使用PDF Arranger来对PDF文件进行排版和修改
- python求众数程序_python求众数问题实例
- python决策树怎么选择_机器学习|决策树分类与python实现
- 信息学奥赛一本通(1131:基因相关性)
- 第一次使用水晶报表,柱状图的横竖坐标不会定位,怎么办?
- 我的firefox插件开发历程
- java复制数组函数_java 数组复制:System.arrayCopy 深入解析
- python百度文库免券下载
- QQ音乐播放地址 API
- Java 创建线程的三种方式总结
- 常见英语人名及其音标和中文翻译
- 梯度向量与梯度下降法
- [转] 理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)
- 完全删除iCloud注册的Apple ID
- Stata | 连续变量to类别变量
- python 实时录音_python实现录音功能(可随时停止录音)
- 基于JAVA政府采购线上招投标平台计算机毕业设计源码+系统+数据库+lw文档+部署
- Typora DIY 主题背景,以及透明pre代码块。
- C# 汉字转拼音 拼音转汉字 简体繁体互转