一起学习Spring boot 2.1.X | 第十五篇:登陆拦截器
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 | 第十五篇:登陆拦截器相关推荐
- Spring Boot 统一功能处理(用户登录权限效验-拦截器、异常处理、数据格式返回)
文章目录 1. 统一用户登录权限效验 1.1 最初用户登录权限效验 1.2 Spring AOP 统一用户登录验证 1.3 Spring 拦截器 1.4 练习:登录拦截器 1.5 拦截器实现原理 1. ...
- springboot 拦截器 日志_跟武哥一起学习Spring Boot,一份全面详细的学习教程
SpringBoot现在已经是企业开发项目的标准框架,至少新项目一般都会使用SpringBoot框架,发现有一个SpringBoot的笔记写的非常好,非常全面, 也非常认真,即使你对SpringBoo ...
- 2小时学习Spring Boot 2019版本 代码一样推送至github上面去
简介:<2小时学习Spring Boot>后续进阶课程,主要讲述了Spring Boot针对Web方面的相关技巧 讲师实战课程<Spring Boot微信点餐系统> http: ...
- 学习Spring Boot:(二十六)使用 RabbitMQ 消息队列
前言 前面学习了 RabbitMQ 基础,现在主要记录下学习 Spring Boot 整合 RabbitMQ ,调用它的 API ,以及中间使用的相关功能的记录. 相关的可以去[我的博客/Rabbit ...
- 学习Spring Boot:(二十五)使用 Redis 实现数据缓存
前言 由于 Ehcache 存在于单个 java 程序的进程中,无法满足多个程序分布式的情况,需要将多个服务器的缓存集中起来进行管理,需要一个缓存的寄存器,这里使用的是 Redis. 正文 当应用程序 ...
- 学习Spring Boot:(一)入门
微服务 微服务其实是服务化思路的一种最佳实践方向,遵循SOA(面向服务的架构)的思路,各个企业在服务化治理上面的道路已经走得很远了,整个软件交付链上各个环节的基础设施逐渐成熟了,微服务就诞生了. 微服 ...
- quartz集成到springboot_一个用来学习 spring boot 的开源项目,总共包含 57 个集成demo...
spring-boot-demo 一个用来学习 spring boot 的项目,总共包含 57 个集成demo. 包含集成 actuator(监控).admin(可视化监控).logback(日志). ...
- 2022 年学习 Spring Boot 开发的最佳书籍
在我们之前的文章中,我们查看了学习 Java 编程的必读书籍我们在其中探索了一些您可以利用的资源来加快 Java 开发的速度.在此基础上,在用 vanilla Java 编写一段时间后,您将意识到组织 ...
- Spring Boot干货系列:(十二)Spring Boot使用单元测试 | 嘟嘟独立博客
原文地址 2017-12-28 开启阅读模式 Spring Boot干货系列:(十二)Spring Boot使用单元测试 Spring Boot干货系列 Spring Boot 前言 这次来介绍下Sp ...
- 【Vue2.0学习】—Vuex工作原理图(二十五)
[Vue2.0学习]-Vuex工作原理图(二十五) 一. Vuex 是什么? 概念: 专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对Vue应用中多个组件的共享状态进行集中式的管理(读/写 ...
最新文章
- POST请求||带参数的POST请求
- Kubernetes List-Watch
- Angular2.0 基础: Form
- 测试教程网.unittest教程.6. 命令行接口
- path环境变量丢失恢复
- python第三方zip_python第三方包的几种安装方式
- windows平台源码编译最新版openssl
- CRT(C Runtime Library)—— C/C++运行时库
- 一次性删除maven本地仓库下的.lastUpdated 结尾的文件
- wps office2019PC版和Mac版_来试试这款政府版WPS吧
- MATLAB-图像加密
- UINO优锘:DCV产品发展历程
- php中通快递下单 代码,中通开放平台 预约下单接口php
- 腾讯互娱推出 PGOS 提供 Serverless 游戏上云
- Linux 系统时间EST改CTS
- 人机的根本区别:Free will
- 作为 IT 从业人员,你觉得有什么工具大大提高了你的工作效率?
- Ubuntu14.04安装搜狗拼音输入法后无法使用解决方案
- 改进我的人人农场收菜外挂
- 【转载】JSP开发工具的选择
热门文章
- INS/GNSS组合导航(二)GNSS卫星定位原理及误差源
- 直连网线和交叉网线的线序
- 右键文件一直转圈卡死
- 11.	Zigbee应用程序框架开发指南 - 命令行接口(CLI)
- devc++工程提示“源文件未编译”的可能问题
- 如何提高信号发生器(信号源)测量时的幅度精度
- 知乎获2000赞的Java 多线程超详细总结笔记,看这一篇彻底搞懂线程池
- 【SD自动记账】SD与FI的集成部分
- 阿里巴巴国际站之关键词整理
- python做一个qq聊天窗口_python实现qq聊天(带界面)