1.POM依赖

 <!--过滤、监听、拦截--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency>

2.新建WebConfig

import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@Configuration
public class MvcConfig extends WebMvcConfigurationSupport {private final static Logger logger = LoggerFactory.getLogger(MvcConfig.class);//解决跨域问题/*@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**")//配置可以被跨域的路径.allowedMethods("*")//允许所有的请求方法.allowedOrigins("*")//允许所有的请求域名.allowedHeaders("*")//允许所有的请求header访问.allowCredentials(true)//cookie请求的时候需要开启.maxAge(3600)//请求时间;super.addCorsMappings(registry);}*///拦截器@Overridepublic void addInterceptors(InterceptorRegistry registry) {InterceptorRegistration interceptorRegistration = registry.addInterceptor(new LoginInterceptor());//excludePathPatterns去除拦截和addPathPatterns添加拦截interceptorRegistration.excludePathPatterns("/login"/*,"/page"*/);
//        interceptorRegistration.excludePathPatterns("/**");interceptorRegistration.addPathPatterns("/**");}//静态资源处理@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {//需要配置1:需要告知系统,这是要被当成静态文件的!//第一个方法设置访问路径前缀,第二个方法设置资源路径registry.addResourceHandler("/static/**", "/favicon.ico").addResourceLocations("classpath:/static/");}//用户拦截器private class LoginInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException {System.out.println(request.getRequestURI());//System.out.println("在控制器执行前调用 ");//Session//Object admin = request.getSession().getAttribute("admin");//Token//String user = request.getHeader("Token");//String user = request.getParameter("Token");String user = null;if (user == null){JSONObject json = new JSONObject();json.put("flag","0");json.put("error","无用户登陆!");//设置缓冲区中使用的编码为UTF-8response.setCharacterEncoding("UTF-8");//设置接受内容时所使用的编码方式
//                response.setContentType("text/html;charset = UTF-8");response.setContentType("application/json;charset=UTF-8");response.getWriter().print(json);return false;}logger.info("当前用户已登录,登录的用户名为: ");return true;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {//controller方法处理完毕后,调用此方法
//            System.out.println("在后端控制器执行后调用 ");}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {//页面渲染完毕后调用此方法
//            System.out.println("整个请求执行完成后调用 ");}}}

3.需要Controller中重写login

 @RequestMapping(value = "/login")public String admin(){return "login";}

注:自己稍微梳理一下

一起学习Spring boot 2.1.X | 第十五篇:登陆拦截器相关推荐

  1. Spring Boot 统一功能处理(用户登录权限效验-拦截器、异常处理、数据格式返回)

    文章目录 1. 统一用户登录权限效验 1.1 最初用户登录权限效验 1.2 Spring AOP 统一用户登录验证 1.3 Spring 拦截器 1.4 练习:登录拦截器 1.5 拦截器实现原理 1. ...

  2. springboot 拦截器 日志_跟武哥一起学习Spring Boot,一份全面详细的学习教程

    SpringBoot现在已经是企业开发项目的标准框架,至少新项目一般都会使用SpringBoot框架,发现有一个SpringBoot的笔记写的非常好,非常全面, 也非常认真,即使你对SpringBoo ...

  3. 2小时学习Spring Boot 2019版本 代码一样推送至github上面去

    简介:<2小时学习Spring Boot>后续进阶课程,主要讲述了Spring Boot针对Web方面的相关技巧 讲师实战课程<Spring Boot微信点餐系统> http: ...

  4. 学习Spring Boot:(二十六)使用 RabbitMQ 消息队列

    前言 前面学习了 RabbitMQ 基础,现在主要记录下学习 Spring Boot 整合 RabbitMQ ,调用它的 API ,以及中间使用的相关功能的记录. 相关的可以去[我的博客/Rabbit ...

  5. 学习Spring Boot:(二十五)使用 Redis 实现数据缓存

    前言 由于 Ehcache 存在于单个 java 程序的进程中,无法满足多个程序分布式的情况,需要将多个服务器的缓存集中起来进行管理,需要一个缓存的寄存器,这里使用的是 Redis. 正文 当应用程序 ...

  6. 学习Spring Boot:(一)入门

    微服务 微服务其实是服务化思路的一种最佳实践方向,遵循SOA(面向服务的架构)的思路,各个企业在服务化治理上面的道路已经走得很远了,整个软件交付链上各个环节的基础设施逐渐成熟了,微服务就诞生了. 微服 ...

  7. quartz集成到springboot_一个用来学习 spring boot 的开源项目,总共包含 57 个集成demo...

    spring-boot-demo 一个用来学习 spring boot 的项目,总共包含 57 个集成demo. 包含集成 actuator(监控).admin(可视化监控).logback(日志). ...

  8. 2022 年学习 Spring Boot 开发的最佳书籍

    在我们之前的文章中,我们查看了学习 Java 编程的必读书籍我们在其中探索了一些您可以利用的资源来加快 Java 开发的速度.在此基础上,在用 vanilla Java 编写一段时间后,您将意识到组织 ...

  9. Spring Boot干货系列:(十二)Spring Boot使用单元测试 | 嘟嘟独立博客

    原文地址 2017-12-28 开启阅读模式 Spring Boot干货系列:(十二)Spring Boot使用单元测试 Spring Boot干货系列 Spring Boot 前言 这次来介绍下Sp ...

  10. 【Vue2.0学习】—Vuex工作原理图(二十五)

    [Vue2.0学习]-Vuex工作原理图(二十五) 一. Vuex 是什么? 概念: 专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对Vue应用中多个组件的共享状态进行集中式的管理(读/写 ...

最新文章

  1. POST请求||带参数的POST请求
  2. Kubernetes List-Watch
  3. Angular2.0 基础: Form
  4. 测试教程网.unittest教程.6. 命令行接口
  5. path环境变量丢失恢复
  6. python第三方zip_python第三方包的几种安装方式
  7. windows平台源码编译最新版openssl
  8. CRT(C Runtime Library)—— C/C++运行时库
  9. 一次性删除maven本地仓库下的.lastUpdated 结尾的文件
  10. wps office2019PC版和Mac版_来试试这款政府版WPS吧
  11. MATLAB-图像加密
  12. UINO优锘:DCV产品发展历程
  13. php中通快递下单 代码,中通开放平台 预约下单接口php
  14. 腾讯互娱推出 PGOS 提供 Serverless 游戏上云
  15. Linux 系统时间EST改CTS
  16. 人机的根本区别:Free will
  17. 作为 IT 从业人员,你觉得有什么工具大大提高了你的工作效率?
  18. Ubuntu14.04安装搜狗拼音输入法后无法使用解决方案
  19. 改进我的人人农场收菜外挂
  20. 【转载】JSP开发工具的选择

热门文章

  1. INS/GNSS组合导航(二)GNSS卫星定位原理及误差源
  2. 直连网线和交叉网线的线序
  3. 右键文件一直转圈卡死
  4. 11. Zigbee应用程序框架开发指南 - 命令行接口(CLI)
  5. devc++工程提示“源文件未编译”的可能问题
  6. 如何提高信号发生器(信号源)测量时的幅度精度
  7. 知乎获2000赞的Java 多线程超详细总结笔记,看这一篇彻底搞懂线程池
  8. 【SD自动记账】SD与FI的集成部分
  9. 阿里巴巴国际站之关键词整理
  10. python做一个qq聊天窗口_python实现qq聊天(带界面)