Spring中过滤器 RequestContextFilter 和 OncePerRequestFilter 的区别
说明:
在Spring中,RequestContextFilter 和 OncePerRequestFilter 都是处理HTTP请求的关键组件,但它们的职能和使用场景有着不同的区别
一、实现机制
1、RequestContextFilter
管理请求上下文生命周期,将请求相关属性绑定到当前线程的 RequestContextHolder 中
@Component
public class RequestFilter extends RequestContextFilter {@Overrideprotected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {//除了 RequestContextFilter 默认自动处理请求上下文绑定,这里也可以手动处理//一般使用默认的自动处理上下文,无需手动处理ServletRequestAttributes attributes = new ServletRequestAttributes(request, response);