当前位置: 首页 > news >正文

[JAVAee]Spring拦截器

适用场景

像是页面的登录验证处理,权限校验,登录日志的处理.

实现步骤

  1. 创建⾃定义拦截器,实现 HandlerInterceptor 接⼝的 preHandle(执⾏具体⽅法之前的预处理⽅法.
  2. 将⾃定义拦截器加⼊ WebMvcConfigurer 的 addInterceptors ⽅法中.

下面以登录验证为例,实现拦截器.

实现HandlerInterceptor接口,并重写preHandle方法(在业务处理器处理请求之前被调用)

@Component
public class Interceptor implements HandlerInterceptor {//preHandle方法返回true表示能通过,并继续执行原本的下一步.//返回false表示不能通过,执行其他程序或返回.@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {HttpSession session = request.getSession(false);if(session != null && session.getAttribute("user") != null){return true;//验证用户已为登录状态}//用户未登录response.sendRedirect("login.html");return false;}
}

 实现WebMvcConfigurer接口,将上面实现的拦截器加入到其中

@Configuration
public class MyConfig implements WebMvcConfigurer {@Autowired//注入拦截器的对象Interceptor Interceptor;@Override//添加拦截器public void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(Interceptor)//将拦截器加入.addPathPatterns("/**")//拦截所有的方法.excludePathPatterns("/**/*.html")//放开(不拦截)以.html结尾的文件.excludePathPatterns("/user/login");//放开url为user/login的方法}
}

相关文章:

[JAVAee]Spring拦截器

适用场景 像是页面的登录验证处理,权限校验,登录日志的处理. 实现步骤 创建⾃定义拦截器,实现 HandlerInterceptor 接⼝的 preHandle(执⾏具体⽅法之前的预处理⽅法.将⾃定义拦截器加⼊ WebMvcConfigurer 的 addInterceptors ⽅法中. 下面以登录验证为例,实现拦…...

【nvm】Node Version Manager(NVM)安装配置以及使用(WIN版)

NVM 包管理工具 安装 访问NVM-Windows的GitHub页面:点击nvm-setup.exe。 根据提示进行下一步,文件位置选择自定义位置 验证安装是否成功 nvm version 。如果成功,它将显示NVM的版本号。 使用 nvm list available查看所有的可以被下载…...

【微服务】七. http客户端Feign

7.1 基于Feign远程调用 RestTimeplate方式调用存在的问题 先来看以前利用RestTemplate发起远程调用的代码: String url "http://userservice/user"order.getUserId(); User user restTemplate.getForObject(url,User.class);存在下面的问题&#xf…...

【Spring Boot 源码学习】OnWebApplicationCondition 详解

Spring Boot 源码学习系列 OnWebApplicationCondition 详解 引言往期内容主要内容1. getOutcomes 方法2. getMatchOutcome 方法3. isWebApplication 方法3.1 isServletWebApplication 方法3.2 isReactiveWebApplication 方法3.3 isAnyWebApplication 方法 总结 引言 上篇博文带…...

力扣之二分法

今天&#xff0c;学习了二分法&#xff0c;详细内容见代码随想录 (programmercarl.com)&#xff0c;讲得十分好。 力扣之35. 搜索插入位置 - 力扣&#xff08;LeetCode&#xff09;。 class Solution { public:int searchInsert(vector<int>& nums, int target) {in…...

css图形化理解--扭曲函数skew()

transform: skewX(30deg);transform: skewY(45deg);transform: skew(30deg,45deg);transform: skewX(angleX);transform: skewY(angleY);transform: skew(angleX,angleY); 是CSS中的一个2D变换方法&#xff0c;它用于对元素沿X轴、Y轴进行倾斜变换。其中&#xff0c;angle表示倾…...

八、互联网技术——物联网

文章目录 一、智慧物联案例分析二、M2M技术三、数据保护综合案例分析一、智慧物联案例分析 智能物流是一种典型的物联网应用。一个物流仓储管理系统架构如下图所示: [问题1] 图中的三层功能:仓库物品识别、网络接入、物流管理中心,分别可对应到物联网基本架构中的哪一层? …...

聊聊MySQL的聚簇索引和非聚簇索引

文章目录 1. 索引的分类1. 存储结构维度2. 功能维度3. 列数维度4. 存储方式维度5. 更新方式维度 2. 聚簇索引2.1 什么是聚簇索引2.2 聚簇索引的工作原理 3. 非聚簇索引&#xff08;MySQL官方文档称为Secondary Indexes&#xff09;3.1 什么是非聚簇索引3.2 非聚簇索引的工作原理…...

python之subprocess模块详解

介绍 subprocess是Python 2.4中新增的一个模块&#xff0c;它允许你生成新的进程&#xff0c;连接到它们的 input/output/error 管道&#xff0c;并获取它们的返回&#xff08;状态&#xff09;码。 这个模块的目的在于替换几个旧的模块和方法。 那么我们到底该用哪个模块、哪个…...

第10讲:Vue组件的定义与注册

定义组件 1. 在程序的 components 目录下新建一个名为 Child.vue 的文件 2. 在文件内键入如下代码 <template><div>Child</div> </template> <script> export default {name: Child } </script>新建的 Child .vue 文件即为我们定义的组件…...

Pycharm操作git仓库 合并等

菜单 Git CommitPushUpdate ProjectPullFetchMergreRebase 查询 查询分支 查询本地所有分支 # 查询本地分支 git branch# 查询远程分支 git branch -rPycharm查看当前分支 步骤&#xff1a; Git->Branches 哈喽&#xff0c;大家好&#xff0c;我是[有勇气的牛排]&…...

Flink+Doris 实时数仓

Flink+Doris 实时数仓 Doris基本原理 Doris基本架构非常简单,只有FE(Frontend)、BE(Backend)两种角色,不依赖任何外部组件,对部署和运维非常友好。架构图如下 可以 看到Doris 的数仓架构十分简洁,不依赖 Hadoop 生态组件,构建及运维成本较低。 FE(Frontend)以 Java 语…...

windows 任务计划自动提交 笔记到github 、gitee

一、必须有个git仓库托管到git上。 这个就不用说了&#xff0c;自己在github或者码云上新建一个仓库就行了。 二、创建自动提交脚本 这个bat脚本是在windows环境下使用的。 注意&#xff1a;windows定时任务下 调用自动提交git前&#xff0c;必须先进入该git仓库目录&#x…...

闭包和装饰器

#闭包的作用 #全局变量有被修改的风险&#xff0c;代码在命名空间上不够干净整洁 #第一种&#xff0c;不使用闭包的场景 account_amount0 def atm(num,depositTrue):global account_amountif deposit:account_amountnumprint(f"存款&#xff1a;{num}&#xff0c;账户余额…...

注册器模式

注册器模式 注册器模式&#xff08;Registry Pattern&#xff09;是一种设计模式&#xff0c;用于管理和维护对象的注册和检索。它允许您在运行时注册对象&#xff0c;并通过一个唯一的标识符或名称来检索这些对象。这种模式通常用于构建可扩展的、松耦合的系统&#xff0c;其…...

5SpringMVC处理Ajax请求携带的JSON格式(“key“:value)的请求参数

SpringMVC处理Ajax 参考文章数据交换的常见格式,如JSON格式和XML格式 请求参数的携带方式 浏览器发送到服务器的请求参数有namevalue&...(键值对)和{key:value,...}(json对象)两种格式 URL请求会将请求参数以键值对的格式拼接到请求地址后面,form表单的GET和POST请求会…...

学习笔记|ADC|NTC原理|测温程序|STC32G单片机视频开发教程(冲哥)|第十九集:ADC应用之NTC

文章目录 1.NTC的原理开发板上的NTC 2.NTC的测温程序编写3.实战小练总结课后练习 1.NTC的原理 NTC&#xff08;Negative Temperature Coefficient&#xff09;是指随温度上升电阻呈指数关系减小、具有负温度系数的热敏电阻现象和材料。该材料是利用锰、铜、硅、钴、铁、镍、锌…...

Redisson 集成SpringBoot 详解

一、引入依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.23.5</version></dependency> redison-spring-boot-starter依赖于与最新版本的spring-boot兼容…...

C# 下载模板文件 Excel

后端代码 [HttpGet("DownloadExcel")]public async Task<dynamic> DownloadExcel(string tmplName){var _fileName "导入表模板.xlsx";var filePath "Files\DownLoad\";var NewFile Path.Combine(filePath, tmplName);var stream new…...

如何做好sop流程图?sop流程图用什么软件做?

5.如何做好sop流程图&#xff1f;sop流程图用什么软件做&#xff1f; 建立标准作业程序sop已经成为企业进步和发展的必经之路&#xff0c;不过&#xff0c;很多刚刚开始着手搭建sop的企业并不知道要如何操作&#xff0c;对于如何做sop流程图、用什么软件做sop流程图等问题充满…...

白帽 SEO 与网站分析数据的关系是什么

<h3 id"seo">白帽 SEO 与网站分析数据的关系是什么</h3> <p>在当今互联网时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;已经成为了每个网站提升流量和品牌知名度的关键因素。而在众多的SEO策略中&#xff0c;白帽SEO&#xff08;White…...

解锁智能监控:提升网页变化追踪效率的完整指南

解锁智能监控&#xff1a;提升网页变化追踪效率的完整指南 【免费下载链接】changedetection.io The best and simplest free open source website change detection, website watcher, restock monitor and notification service. Restock Monitor, change detection. Designe…...

为什么选择yfinance:3步实现免费金融数据获取的完整解决方案

为什么选择yfinance&#xff1a;3步实现免费金融数据获取的完整解决方案 【免费下载链接】yfinance Download market data from Yahoo! Finances API 项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance 在金融数据分析的世界里&#xff0c;你是否曾为获取高质…...

Mac Mouse Fix革命性指南:让普通鼠标在Mac上实现专业级操作体验

Mac Mouse Fix革命性指南&#xff1a;让普通鼠标在Mac上实现专业级操作体验 【免费下载链接】mac-mouse-fix Mac Mouse Fix - A simple way to make your mouse better. 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix Mac Mouse Fix是一款专为Mac用户…...

YOLOv8在智慧农业中的落地实践:如何提升植物病害检测准确率到90%+

YOLOv8在智慧农业中的落地实践&#xff1a;如何提升植物病害检测准确率到90% 在智慧农业领域&#xff0c;植物病害的早期识别与精准诊断一直是技术攻关的重点。传统人工检测方式不仅效率低下&#xff0c;而且受限于专家经验&#xff0c;难以实现规模化应用。随着计算机视觉技术…...

用Python和C语言两种解法,搞定ZZULIOJ 1091‘爬楼梯’问题(附多实例测试详解)

用Python和C语言两种解法&#xff0c;搞定ZZULIOJ 1091‘爬楼梯’问题&#xff08;附多实例测试详解&#xff09; 当你第一次看到这个题目时&#xff0c;可能会觉得它只是一个简单的递归问题。但深入思考后会发现&#xff0c;这实际上是动态规划的经典案例——斐波那契数列的变…...

本地部署 LookScanned:轻松将 PDF 转为逼真扫描件,结合内网穿透实现远程访问

前言 本文主要介绍了 LookScanned 这款工具的部署与使用方法。LookScanned 可将普通电子 PDF 转换为高度逼真的纸质扫描件效果&#xff0c;全程本地处理保障隐私&#xff0c;操作简单且无需打印扫描的物理步骤。 文中详细讲解了在极空间通过 Docker 部署 LookScanned 的流程&…...

Python实战:用NumPy实现酉矩阵的生成与验证(附完整代码)

Python实战&#xff1a;用NumPy实现酉矩阵的生成与验证&#xff08;附完整代码&#xff09; 在量子计算、信号处理和机器学习等领域&#xff0c;复数矩阵运算正变得越来越重要。酉矩阵&#xff08;Unitary Matrix&#xff09;作为复数域上的"正交矩阵"&#xff0c;保…...

2026年重庆桶装水工厂,这些经营要点与避坑指南你知道吗?

2026 年&#xff0c;在重庆经营桶装水工厂&#xff0c;面临不少挑战和机遇。重庆水木华桶装水厂家有多年相关经验&#xff0c;能帮你少走弯路。下面就为你分享经营要点和避坑指南。常见经营痛点很多桶装水工厂老板都有过这样的经历。水质把控不好&#xff0c;容易出现异味、浑浊…...

新手必看:Qwen2.5-VL-7B图文对话模型部署与使用全攻略

新手必看&#xff1a;Qwen2.5-VL-7B图文对话模型部署与使用全攻略 1. 环境准备与快速部署 1.1 镜像简介 Qwen2.5-VL-7B-Instruct-GPTQ是基于Qwen2.5-VL-7B-Instruct模型的GPTQ量化版本&#xff0c;专门用于图文对话任务。这个镜像已经预装了vllm推理框架和chainlit前端界面&…...