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

Spring MVC 拦截器总结

1.简介

Spring MVC提供了拦截器方便在接口调用前后进行一些通用处理。

2.步骤

1.实现一个拦截器类,共有三处拦截时机:

public class Interceptor1 implements HandlerInterceptor {//实现HandlerInterceptor接口//执行handler之前调用//编码格式处理,登录保护,权限处理@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("Interceptor1.preHandle");return true;//拒绝还是通过}//handler执行完毕后执行//检查敏感词汇@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println("Interceptor1.postHandle");HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);}//整体处理完毕执行@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("Interceptor1.afterCompletion");HandlerInterceptor.super.afterCompletion(request, response, handler, ex);}
}

2.在配置类中注册拦截类:

public class MvcConfig implements WebMvcConfigurer {//实现WebMvcConfigurer接口
...@Overridepublic void addInterceptors(InterceptorRegistry registry){//方法 1.注册拦截类,拦截全部请求registry.addInterceptor(new Interceptor1());//方法 2.指定地址拦截//通配符:* :一层字符 **:多层字符registry.addInterceptor(new Interceptor1()).addPathPatterns("/product/**");//方法 3.排除拦截registry.addInterceptor(new Interceptor1()).addPathPatterns("/user/***").excludePathPatterns("/user/data1");//如果有多个拦截类优先级如何?registry.addInterceptor(new Interceptor1())//先声明优先级高,先进后出.addPathPatterns("/product/**");registry.addInterceptor(new Interceptor2())//后声明优先级低,后进先出.addPathPatterns("/product/**");
}

相关文章:

Spring MVC 拦截器总结

1.简介 Spring MVC提供了拦截器方便在接口调用前后进行一些通用处理。 2.步骤 1.实现一个拦截器类,共有三处拦截时机: public class Interceptor1 implements HandlerInterceptor {//实现HandlerInterceptor接口//执行handler之前调用//编码格式处理…...

Linux——创建编写并编译一个C程序

一、使用vim编辑器 在Linux系统下,使用vim编辑器创建、编写并编译一个C程序是一个常见的做法。以下是一个详细的步骤指南,我们将创建一个简单的C程序,该程序的功能是输出“Hello, World!”到终端。 步骤 1: 打开vim编辑器并创建C程序文件 …...

window下idea中scala的配置

目录 Scala安装步骤: 1.下载scala安装包 2.配置环境变量: 3.检查scala是否安装成功: 4.idea安装scala插件 5.导入scala-sdk 6.新建scala文件 Scala安装步骤: 1.下载scala安装包 访问Scala官网:https://www.sca…...

Qt C++设计模式->享元模式

享元模式(Flyweight Pattern)是一种结构型设计模式,旨在通过共享相同对象来减少内存使用,尤其适合在大量重复对象的情况下。它通过将对象的可共享部分抽取出来,并在多个上下文中共享,从而避免对象的多次创建…...

前端实用技能

焦点聚焦 import Vue from vue // 插件对象(必须有 install 方法, 才可以注入到 Vue.use 中) export default {install () {Vue.directive(fofo, {inserted (el) {el el.querySelector(input)el.focus()}})} }格式化日期格式 export const formatDate (time) > {// 将xx…...

Android LiveData 数据倒灌

相关类型的文章很多,这里只做个人总结和其余的方法推荐 1.什么是数据倒灌? 所谓的“数据倒灌”:其实是类似粘性广播那样,当新的观察者开始注册观察时,会把上次发的最后一次的历史数据传递给当前注册的观察者。 一方…...

umi项目中使用mockj生成数据模拟请求调用

Mock.js简介 Mock.js 是一个轻量级且无依赖的JavaScript库,用于生成模拟数据。它可以帮助开发者在前端开发过程中模拟后端API接口,以便进行快速原型设计和测试。Mock.js 提供了丰富的API来模拟各种类型的数据,如字符串、数字、日期、数组等。…...

事件【JavaScript】

1. 事件 事件是用户或浏览器动作的表示,JavaScript 中的一切交互都是通过事件来处理的。 2. 事件冒泡(Event Bubbling) 事件冒泡是指事件从最具体的元素(即触发事件的元素)开始触发,然后逐级向上传播到较…...

【Linux】Linux基本命令

目录 文件和目录操作: ls cd pwd cp mv rm mkdir rmdir touch clear history which/whereis 文件查看和编辑: cat less head tail vi 或 vim sz/rz echo 系统信息和管理: su uname hostname df free top ps ki…...

微软宣称其新工具可纠正人工智能幻觉 但专家依然对此表示怀疑

人工智能经常胡言乱语,微软现在说它有办法解决这个问题,但我们有理由对此持怀疑态度。微软今天发布了一项名为"更正"(Correction)的服务,它可以自动修改人工智能生成的与事实不符的文本。Correction 首先会标…...

实战OpenCV之图像滤波

基础入门 图像滤波是数字图像处理中一种非常重要的技术,主要用于图像噪声去除、图像平滑、突出图像特征,或者进行图像风格的转换。它通过数学运算对图像中的像素值进行修改,以达到特定的处理目的。图像滤波可以分为两大类,分别为:线性滤波、非线性滤波。 线性滤波器通过一…...

AI学习指南深度学习篇-Adadelta的Python实践

AI学习指南深度学习篇-Adadelta的Python实践 深度学习是人工智能领域的一个重要分支,近年来在各个领域都取得了显著的成就。在深度学习的模型训练中,优化算法起着至关重要的作用,其中Adadelta是一种常用的优化算法之一。本篇博客将使用Pytho…...

go webapi上传文件 部属到linux

go厉害的地方,linux服务器上无需安装任何依赖就可以运行,大赞! 一、编译 #在Goland中cmd中执行 go env -w GOARCHamd64 go env -w GOOSlinux go build main.go # 切换回来 否则无法运行 go env -w GOOSwindows go run main.go 拷贝到linux服…...

接口加解密及数据加解密

目录 一、 加解密方式介绍 1.1 Hash算法加密 1.2. 对称加密 1.3 非对称加密 二、 我们要讲什么? 三、 接口加解密 四、 数据加解密 一、 加解密方式介绍 所有的加密方式我们可以分为三类:对称加密、非对称加密、Hash算法加密。 算法内部的具体实现…...

开创远程就可以监测宠物健康新篇章

在宠物健康监测的新纪元,智能听诊器凭借其先进技术,正逐步改变我们对宠物健康监护的传统认知。这不仅是一款监测工具,而是宠物健康管理的得力助手,为宠物主人和兽医提供前所未有的洞察力和便捷性。 深度学习算法:智能…...

二叉树的基本概念(上)

文章目录 🍊自我介绍🍊简介🍊树的定义树中的专业术语树的分类 🍊二叉树的特性讲解 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞关注评论收藏(一键四连)哦~ 🍊自我介…...

aws s3 存储桶 前端组件上传简单案例

写一个vue3 上传aws oss存储的案例 使用到的插件 npm install aws-sdk/client-s3 注意事项 : 1. 本地调试 , 需要设置在官网设置跨域 必须!!! 否则调试不了 ,前端代理是不起作用的 ,因为是插…...

【开源免费】基于SpringBoot+Vue.JS墙绘产品展示交易平台(JAVA毕业设计)

本文项目编号 T 049 ,文末自助获取源码 \color{red}{T049,文末自助获取源码} T049,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…...

python爬虫初体验(四)—— 百度文库PPT的爬取

文章目录 1. 安装包2. 相关代码3. 说明4. 注意事项5. 扩展功能5.1 多页面下载5.2 输入地址下载 在Python 2中编写一个爬虫来大量下载图片,可以使用requests库来发送HTTP请求,并使用BeautifulSoup来解析HTML页面。此外,可以使用urllib2库来下载…...

下水道内缺陷识别检测数据集 yolo数据集 共2300张

下水道内缺陷识别检测数据集 yolo数据集 共2300张 下水道内部缺陷识别数据集(Sewer Interior Defect Recognition Dataset, SIDRD) 摘要 SIDRD 是一个专门针对下水道内部缺陷识别的数据集,旨在为城市基础设施维护和管理提供一个标准化的训练…...

Mamba模型实战:如何用Python快速搭建一个长序列处理Demo(附代码)

Mamba模型实战:如何用Python快速搭建一个长序列处理Demo(附代码) 在自然语言处理和时间序列分析领域,处理长序列数据一直是个棘手的问题。传统Transformer架构虽然表现出色,但随着序列长度增加,其计算复杂度…...

终极指南:procs如何彻底改变DevOps工作流?监控、调试、优化的完整解决方案

终极指南:procs如何彻底改变DevOps工作流?监控、调试、优化的完整解决方案 【免费下载链接】procs A modern replacement for ps written in Rust 项目地址: https://gitcode.com/gh_mirrors/pr/procs procs是一款用Rust编写的现代进程查看工具&a…...

跨平台文件同步:OpenClaw调用GLM-4.7-Flash智能归类方案

跨平台文件同步:OpenClaw调用GLM-4.7-Flash智能归类方案 1. 为什么需要智能文件同步 作为一个长期在多台设备间切换工作的开发者,我深受文件管理混乱的困扰。Mac上的设计稿、Windows里的会议记录、手机拍摄的参考图,最终都会堆积在某个临时…...

海尔智能家居无缝接入HomeAssistant:打破品牌壁垒的终极指南

海尔智能家居无缝接入HomeAssistant:打破品牌壁垒的终极指南 【免费下载链接】haier 项目地址: https://gitcode.com/gh_mirrors/ha/haier 还在为家中海尔设备无法与其他智能设备联动而烦恼吗?想象一下,炎热的夏天回家前就能远程开启…...

如何从零开始掌握Metasploitable3?安全测试入门到实践指南

如何从零开始掌握Metasploitable3?安全测试入门到实践指南 【免费下载链接】metasploitable3 Metasploitable3 is a VM that is built from the ground up with a large amount of security vulnerabilities. 项目地址: https://gitcode.com/gh_mirrors/me/metasp…...

Python异步编程:非科班转码者的指南

Python异步编程:非科班转码者的指南 前言 大家好,我是第一程序员(名字大,人很菜)。作为一个非科班转码、正在学习Rust和Python的萌新,我最近开始接触异步编程。异步编程是一种处理并发操作的方法&#xff0…...

VS2022社区版离线安装后,真的不用登录吗?我的30天实测与长期使用避坑指南

VS2022社区版离线安装后长期免登录实战指南:破解30天授权谜题 第一次在完全离线的开发环境中双击VS2022图标时,那种忐忑感记忆犹新——这个号称"免费"的开发工具,会不会突然弹出登录框锁死我的工作流?微软官方文档对离线…...

RAG技术:解锁大模型潜力,实现精准、可信赖的智能问答

RAG(检索增强生成)技术通过将大语言模型(LLM)与外部知识库结合,有效解决LLM知识静态、幻觉等问题,提升回答的准确性与可信度。RAG技术核心包括检索和生成两个阶段,通过优化文本分块、索引构建、…...

3个核心维度解析iOS数据取证:iLEAPP从入门到精通

3个核心维度解析iOS数据取证:iLEAPP从入门到精通 【免费下载链接】iLEAPP iOS Logs, Events, And Plist Parser 项目地址: https://gitcode.com/gh_mirrors/il/iLEAPP 一、核心价值:iOS数据解析的全能工具 iLEAPP(iOS Logs, Events, …...

从零开始:Linux系统部署AI视频生成工具Sora.FM的实战指南

从零开始:Linux系统部署AI视频生成工具Sora.FM的实战指南 【免费下载链接】sorafm 项目地址: https://gitcode.com/GitHub_Trending/so/sorafm 在数字化内容创作领域,AI视频生成技术正在引领一场新的革命。Sora.FM作为基于Sora AI技术的创新平台…...