SpringBoot 拦截器

Springboot Filter 多过滤器的使用 前言 在springboot配置过滤实现方案有两种, 一种是基于serlvet 的注解 @WebFilter 进行配置,一种是使用Springboot提供的 FilterRegistrationBean注册自定义过滤器。 该篇使用的方案是后者,因为按照我以前使用的记忆里,这种方式可以避免一些偶然出现的小问题,如:过滤器没生效;生效后url匹配不生效等。 正文 在开始敲代码前,先从上帝视角看看我们这次实践案例,做了些什么: BodyReaderHttpServletRequestWr.. 阅读详情

1. 自定义Filter

 

pring Boot自动添加了OrderedCharacterEncodingFilter和HiddenHttpMethodFilter,并且我们可以自定义Filter。

从输出日志可以看到默认添加的Filter

两个步骤:

  1. 实现Filter接口,实现Filter方法
  2. 添加@Configuration 注解,将自定义Filter加入过滤链

代码 :

@Configuration
public class WebConfiguration {
    @Bean
    public RemoteIpFilter remoteIpFilter() {
        return new RemoteIpFilter();
    }
    
    @Bean
    public FilterRegistrationBean testFilterRegistration() {

        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(new MyFilter());//添加过滤器
        registration.addUrlPatterns("/*");//设置过滤路径,/*所有路径
        registration.addInitParameter("name", "wcb");registration.setinitParameter("age",26);//添加默认参数
       registration.setOrder(1);//设置优先级
        return registration;
    }
    
    public class MyFilter implements Filter {
		@Override
		public void destroy() {
			// TODO Auto-generated method stub
		}

		@Override
		public void doFilter(ServletRequest srequest, ServletResponse sresponse, FilterChain filterChain)
				throws IOException, ServletException {
			HttpServletRequest request = (HttpServletRequest) srequest;
			System.out.println("this is MyFilter,url :"+request.getRequestURI());
			filterChain.doFilter(srequest, sresponse);
		}

		@Override
		public void init(FilterConfig arg0) throws ServletException {
			// TODO Auto-generated method stub
		}
    }
}//添加过滤器
        registration.addUrlPatterns("/*");//设置过滤路径,/*所有路径
        registration.addInitParameter("name", "wcb");registration.setinitParameter("age",26);//添加默认参数
       registration.setOrder(1);//设置优先级
        return registration;
    }
    
    public class MyFilter implements Filter {
		@Override
		public void destroy() {
			// TODO Auto-generated method stub
		}

		@Override
		public void doFilter(ServletRequest srequest, ServletResponse sresponse, FilterChain filterChain)
				throws IOException, ServletException {
			HttpServletRequest request = (HttpServletRequest) srequest;
			System.out.println("this is MyFilter,url :"+request.getRequestURI());
			filterChain.doFilter(srequest, sresponse);
		}

		@Override
		public void init(FilterConfig arg0) throws ServletException {
			// TODO Auto-generated method stub
		}
    }
}
@RestController
public class TestController {
	@Autowired
	private FilterRegistrationBean filterRegistrationBean;
	@RequestMapping("/test")
	public Map<String, String> test() {
		return filterRegistrationBean.getInitParameters();
	}
}

访问http://localhost:8080/test 可以看到,页面结果如下

再看控制台输出日志,可见自定义的拦截器也有拦截并输出内容

STM32外围电路硬件解析 复位 :让MCU回到最开始的状态。并且从头开始,重新执行程序 我们什么时候需要复位? 1.烧录的时候 2.程序跑飞了的时候 3.上电复位(上电的时候需要复位) 复位方式: 1.上电复位: --- 一定要有 MCU的Reset是复位引脚,当这个引脚为低电平时, 阅读详情

相关推荐

初级文章【西门子】字符拼接成字符串

针对S7-400极其以下PLC,1200往上据说有专门的块了呢,首先,我是不用库的,需要什么函数会自己写,OK进入正题。 首先,我们有一个DB块,里面有14个char,一个14位的char数组和一个14位的string。如下图。 我们的目的是将char1-char10拼接成一个string。 第一种方式:第一步,将char放进数组。 ​​​​​​​ 相信大家都能看明白,但是我还是要解释解释 L取值2 T赋值到临时变量DBNO(INT) OPN DB [#DBNO]获取DB块,这一句.

NS_Speak(IVAV) 1万+

SpringBoot搭建笔记以及常见问题

一、spring、springMvc、springBoot和springCloud的联系与区别 https://blog.csdn.net/alan_liuyue/article/details/80656687 Spring Boot实现了自动配置,降低了项目搭建的复杂度。 众所周知Spring框架需要进行大量的配置,Spring Boot引入自动配置的概念,让项目设置变得很容易。Spri...

m0_37027631的博客 1755

DC算法竞赛——北京PM2.5浓度回归分析

北京PM2.5浓度回归分析 比赛结果(118/1150) 一. 概述 1、项目来源:https://www.dcjingsai.com/static_page/cmpList.html 2、给定数据字段如下: 3、使用方法:回归算法 4、目的:预测北京pm2.5值,使平均预测误差越小越好。 二、分析过程 setwd("E:/R数据源") #读入数据 data <- read.csv('p...

玻璃球的博客 3474

java http url xss,Java FilterRegistrationBean.addUrlPatterns方法代碼示例

本文整理匯總了Java中org.springframework.boot.context.embedded.FilterRegistrationBean.addUrlPatterns方法的典型用法代碼示例。如果您正苦於以下問題:Java FilterRegistrationBean.addUrlPatterns方法的具體用法?Java FilterRegistrationBean.addUrlPa...

weixin_39980917的博客 1614

无监督低照度增强实战:用ZeroDCE和SCI拯救你的夜间照片(附PyTorch代码)

本文深入探讨了无监督低照度图像增强技术,重点解析了ZeroDCE和SCI两大代表性模型的核心原理与实战应用。通过对比分析两者的技术路径、网络结构及性能特点,并附上详细的PyTorch代码实现,旨在帮助读者掌握无需配对数据即可有效提升夜间照片画质的深度学习解决方案。

git9versioner的博客 489

BF8815A

了解ADBMS1818芯片的人会发现,这款BF8815B和1818有着很多相似的东西,当你了解其中一款AFE之后,另一款你的上手也会特别快,下面文章是我针对1818梳理的一些重要知识点,此篇文章主要讲解BF8815B的一些差异点。

m0_61973119的博客 561

SpringBoot之过滤器

过滤器 过滤器可以在前端拦截所有用户的请求。 过滤器的应用 对web服务器所有资源的管理 对url级别的权限进行控制 过滤数据 记录日志 自定义Filter的实现方式 @WebFilter 不能设置过滤器的优先级 FilterRegistrationBean 自定义Filter步骤 实现Filter接口 添加@Configuration注解,将自定义的Filter加入过滤器链 新建My...

曾经蜡笔没有小新 1972

5.3-集群电源模式解析

DSU-120 DynamIQ™集群支持9种电源模式,包括正常运行(ON)、完全断电(OFF)、三种数据保持模式(FUNC_RET、FULL_RET、MEM_RET)、两种调试模拟模式(OFF_EMU、MEM_RET_EMU),以及系统恢复模式(WARM_RST、DBG_RECOV)。这些模式通过智能管理电源状态,在保持数据完整性的同时实现功耗优化,并为系统调试和故障恢复提供支持。不同模式在RAM保持、逻辑断电和调试能力方面各有侧重,满足从正常运行到深度调试等不同场景需求。

baron-周贺贺-代码改变世界ctw 116

FilterRegistrationBean.addUrlPatterns 过滤器不生效可能原因分析

项目使用 FilterRegistrationBean 创建 Filter Bean 过滤器的时候,发现请求并没有被拦截过滤,完全没有作用,经过分析后发现...

张小凡 4772

QCM2290 PM-3 如何让mirco-usb支持关机充电

PM4125-3插入type-C触发开机进入关机充电的CC脚中断条件是否可以软件上屏蔽, 做到只通过VBUS中断即可触发进入关机充电模式,达到和PM4125-2的效果一样只要插入micro USB 就可以触发进入关机充电模式。硬件团队提议修改寄存器 SCHG_L_MISC_SYSOK_CFG 0x164A bit[4] 目前修改如下 — a/BOOT.XF.4.1/boot_images/QcomPkg/Library/PmicLib/target/Agatti_pmCocos/psi/pm_confi

墨染天玑的博客 441

环境配置与基础教程:2026大厂标准:使用 DVC (Data Version Control) 实现 YOLO 数据集版本控制全链路管理

本文介绍了使用DVC 3.0对YOLO数据集进行全链路版本控制的方法。主要内容包括: DVC 3.0的核心增强:内容块级缓存去重、并行云传输、AI智能体元数据跟踪等新特性,可显著提升YOLO数据集管理效率。 环境配置:详细说明DVC 3.0的安装步骤、项目初始化方法以及远程存储配置方案(支持S3、GCS、Azure等多种存储后端)。 目录结构规范:提供符合大厂MLOps标准的项目目录结构设计。 实战操作: 原始数据版本化 多格式标注数据版本控制 版本切换方法 优势说明:DVC通过哈希指针机制管理大型数据集,

ZXSXJ的博客 148

springboot拦截器

1.什么是拦截器 拦截器(Interceptor)类似于Servlet中的过滤器,主要用于拦截客户请求并做出相应的处理。与过滤器有如下区别: 1.过滤器只能在容器初始化时被调用一次,在action的生命周期中,而拦截器可以多次被调用。 2.过滤器可以对几乎所有的请求起作用,拦截器只能对action请求起作用。 3.过滤器不能访问action上下文、值栈里的对象,而拦截器可以访问。 4.过滤器依赖于servlet容器,而拦截器不依赖于servlet容器。 5.过滤器是基于函数回调,而拦截器是基于java的反射

作为一个长者,有必要记录下人生经验 2万+

9.27华为OD机试真题 新系统 - 均衡调度 (Java/Py/C/C++/Js/Go)

9.26华为OD机试真题 新系统 - 均衡调度 (Java/Py/C/C++/Js/Go)

算法大师! 489

全面了解SpringBoot拦截器

拦截器(Interceptor)是一种特殊的组件,它可以在请求处理的过程中对请求和响应进行拦截和处理。拦截器可以在请求到达目标处理器之前、处理器处理请求之后以及视图渲染之前执行特定的操作。拦截器的主要目的是在不修改原有代码的情况下,实现对请求和响应的统一处理。本文详细介绍了SpringBoot中的拦截器,包括拦截器的概念、作用、实现方式、执行顺序、生命周期以及高级应用。我们还探讨了拦截器的性能优化策略和常见问题。希望本文能帮助您更好地理解和使用SpringBoot中的拦截器。

万猫学社 2万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【SpringBoot】深度解析 Spring Boot 拦截器:实现统一功能处理的关键路径

本期主要总结了在SpringBoot中统一功能处理的拦截器功能,从简单了解实现方法,定义到配置到如何运用到我们的图书管理系统代码里都做了解释

GGBond778的博客 5404

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Spring Boot 拦截器

addPathPatterns:该方法用于指定拦截路径,例如拦截路径为“/**”,表示拦截所有请求,包括对静态资源的请求。excludePathPatterns:该方法用于排除拦截路径,即指定不需要被拦截器拦截的请求。Spring Boot 拦截器是 AOP 的一种实现,专门拦截对控制层的请求,主要应用于。HandlerInterceptor 接口中定义以下 3 个方法,如下表所示。创建的类实现 HandlerInterceptor 接口,即可成为拦截器类。...

someday____的博客 3万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

springboot拦截器拦截提示_Spring Boot拦截器

在Spring Boot中使用拦截器,可在以下情况下执行操作 - 在将请求发送到控制器之前在将响应发送给客户端之前例如,使用拦截器在将请求发送到控制器之前添加请求标头,并在将响应发送到客户端之前添加响应标头。要使用拦截器,需要创建支持它的@Component类,它应该实现HandlerInterceptor接口。 以下是在拦截器上工作时应该了解的三种方法 -preHandle()方法 - 用于在将...

weixin_42300194的博客 266

SpringBoot 中的拦截器

拦截器: 是在请求进入到Controller 的一层AOP处理,相当于在Controller之前、之中和之后可以定义一些我们自己的业务逻辑。// HandlerInterceptor接口定义了三个用于拦截请求处理的方法// 在Controller方法调用之前执行此方法// 可以用于权限验证、日志记录等操作// 返回true表示继续处理请求,返回false表示中断请求// 默认允许请求继续处理// 在Controller方法调用之后、但在视图渲染之前执行此方法。

weixin_46668257的博客 2115

Springboot:Spring Boot拦截器深度解析

Spring MVC拦截器(Interceptor)基于实现,在控制器方法执行前后进行拦截处理,其核心流程如下:fill:#333;color:#333;color:#333;fill:none;truefalse执行preHandlepreHandle返回执行Controller方法中断流程执行postHandle渲染视图执行afterCompletion。

weixin_43290370的博客 1078

springboot拦截器拦截提示_Spring Boot 优雅的配置拦截器方式

原标题:Spring Boot 优雅的配置拦截器方式其实spring boot拦截器的配置方式和springMVC差不多,只有一些小的改变需要注意下就ok了。下面主要介绍两种常用的拦截器:一、基于URL实现的拦截器:publicclassLoginInterceptorextendsHandlerInterceptorAdapter{/*** 在请求处理之前进行调用(Controller方法调用之...

weixin_32127359的博客 510

SpringBoot的Web拦截器

Spring拦截器、SpringMVC、Filter、安全拦截、WebMvcConfigurer

糖拌西红柿 1657

SpringBoot的拦截器

该文章来源于互联网:原文档链接 1. 拦截器介绍 拦截器是在servlet执行之前执行的程序(这里就是controller代码执行之前),它主要是用于拦截用户请求并作相应的处理,比如说可以判断用户是否登录,做相关的日志记录,也可以做权限管理。 SpringBoot中的拦截器实现和spring mvc 中是一样的,它的大致流程是,先自己定义一个拦截器类,并将这个类实现一个HandlerInterceptor类,或者是继承HandlerInterceptorAdapter,都可以实现拦截器的定义。然后将自己定义

qq_42008471的博客 1910

springboot 拦截器_第016课:Spring Boot 拦截器

拦截器,请求的接口被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略,拦截器主要用来按照指定规则拒绝请求。使用场景:1、Token令牌验证、2、请求数据校验、3、用户权限校验、4、放行指定接口1. 拦截器的使用使用拦截器需要进行两步操作,首先需要定义拦截器、然后配置拦截器即可。1.1 定义拦截器定义拦截器,需要实现 HandlerInterceptor 接口,该接口中有三...

weixin_39520199的博客 409

SpringBoot使用拦截器

拦截器对使用SpringMvc、的开发人员来说特别熟悉,因为你只要想去做好一个项目必然会用到它。拦截器在我们平时的项目中用处有很多,如:日志记录、用户登录状态拦截、安全拦截等等。而SpringBoot内部集成的是SpringMVC控制框架,所以使用起来跟SpringMVC没有区别,只是在配置上有点不同。本文只介绍如何在springboot中使用拦截器。 环境/版本一览: 开发工具:Intellij IDEA 2020.2.3 springboot:2.3.7.RELEASE jdk:1.8.0_21

王德昌的博客 1万+

springboot|springboot配置拦截器

springboot配置拦截器在springboot中配置拦截器大体上分为以下几步1.引入相关的依赖2.新建拦截器3.配置拦截器Bean虽然网上有很多配置方法,但是我更倾向于官方文件的配...

微笑的小小刀 2526
上一篇: SpringBoot的Conditional系列标签
下一篇: Zookeeper实现分布式锁
AAA821
博客等级 码龄14年 19粉丝 58原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值