登录-12.Interceptor-详解

ops/2025/2/25 11:23:33/

一.拦截器-拦截路径

配置拦截除了"/login"登录请求以外的所有请求。下面我们进行演示。首先演示登录。

当前返回值中没有输出任何定义拦截器时preHandle,postHandle和afterCompletion的输出信息,因此可以知道拦截器Interceptor并没有生效,原因是我们将"/login"请求排除了。

二.拦截器-执行流程

当我们打开浏览器来访问部署在web服务器当中的web应用是,我们所定义的过滤器会拦截到这次请求。拦截后会先执行放行前逻辑,再执行放行逻辑。由于我们当前是基于springboot来开发的,所以放行后进入到spring的环境当中。就要访问controller当中的接口方法。Tomcat服务器并不识别controller程序,但是识别servlet程序,因为Tomcat是一个servlet容器,而在spring的环境中,为我们提供了一个非常核心的servlet,我们叫前端控制器,这个servlet叫DispatcherServlet。所以请求会首先进入到DispatcherServlet,由DispatcherServlet将请求转给controller,再去执行对应的接口方法。但是我们现在又定义了拦截器,所以在执行controller的方法之前先要被拦截器拦截住。拦截器拦截到这些请求后先要对这些请求进行处理,在执行controller的方法之前要先进行preHandle方法,如果preHandle的返回值为true,执行放行操作,允许访问controller中的方法。如果false就不允许。controller中的方法执行完后在执行postHandle和afterCompletion方法,然后返回给DispatcherServlet,最终过滤器中执行放行后逻辑,最后给浏览器响应数据。

演示:

我们首先将过滤器的注解放开,让过滤器生效。

拦截器也生效 

重启服务,使用查询部门的请求 

 


http://www.ppmy.cn/ops/161186.html

相关文章

MySQL 数据库基础

1. MySQL 数据库基础 在这一部分,我们将学习 MySQL 的基本概念和常见的数据库操作,帮助你掌握如何创建数据库、表,并进行数据的增、删、改操作。同时,我们还会探讨一些常见的错误示例及其原因,帮助你避免常见的陷阱。…

Visual Studio C++中MT、MTd、MD、MDd都是什么

在 Visual Studio 的 C/C 运行时库配置中,MT、MTd、MD、MDd 是控制程序如何链接 C/C 标准库和运行时库的关键选项。它们的区别如下: 1. 基本分类 选项含义MT多线程静态链接 Release 版运行时库 (Multithreaded, Static Link)MTd多线程静态链接 Debug 版…

Node.js 中 child_process 模块教程

Node.js 中 child_process 模块教程 简介 Node.js 的 child_process 模块提供了在 Node.js 应用程序中创建和管理子进程的能力。这个功能对于执行系统命令、运行外部程序、以及充分利用多核 CPU 资源都非常有用。 主要方法 1. spawn() spawn() 方法用于启动一个新进程来执…

【MySQL】表的增删查改(CRUD)(上)

个人主页:♡喜欢做梦 欢迎 👍点赞 ➕关注 ❤️收藏 💬评论 CRUD:Create(新增数据)、Retrieve(查询数据)、Update(修改数据)、Delete(修改数据…

PyTorch gather 方法详解:作用、应用场景与示例解析(中英双语)

PyTorch gather 方法详解:作用、应用场景与示例解析 在深度学习和自然语言处理(NLP)任务中,我们经常需要从高维张量中提取特定索引的数据。 PyTorch 提供的 torch.gather 方法可以高效地从张量的指定维度收集数据,广泛…

利用LangChain实现BabyAGI

文章目录 BabyAGI介绍环境与工具向量存储构建任务链 本文将利用LangChain实现BabyAGI。通过本文内容,读者可以更加直观地看到每一步骤的运行情况,并且也可以在自己的环境中进行实验。 BabyAGI介绍 BabyAGI是由Yohei Nakajima在2023年5月发布的一个自治的…

视频大小怎么计算?视频码率是什么,构成视频清晰度的核心要素!

前言: 最近对高清视频比较感兴趣,码率是一个提及很多的词语,所以也就来了解一下码率。 1:含义 视频码率(Bitrate)是衡量视频数据在单位时间内传输或处理的数据量,通常以 比特每秒(…

kafka基本知识

什么是 Kafka? Apache Kafka 是一个开源的分布式流处理平台,最初由 LinkedIn 开发,后来成为 Apache 软件基金会的一部分。Kafka 主要用于构建实时数据管道和流处理应用程序。它能够高效地处理大量的数据流,广泛应用于日志收集、数…