
在 Spring Web 开发中,我们经常会用到过滤器做登录鉴权、接口限流、请求日志、参数处理,很多人分不清普通Filter和OncePerRequestFilter的区别,本文一分钟讲清核心用法与场景。一、什么是「一次请求」客户端(浏览器/APP)发起一次 HTTP 调用,就称为一次请求。整个过程客户端只发送一次网络请求,不会重复调用。二、普通 Filter 为什么会重复执行?Servlet 容器中,同一次客户端请求在服务端内部发生forward请求转发、include页面包含、异步调用时,会多次匹配过滤器规则,导致同一个逻辑重复执行。举个实际场景:客户端请求/user/info,服务端内部转发到/user/detail。访问/user/info:Filter 执行一次内部转发/user/detail:Filter 再执行一次客户端明明只请求了一次,过滤器却跑了两次。三、重复执行会