Java中过滤器(Filter)、拦截器(Interceptor)、监听器(Listener)

Java中过滤器(Filter)、拦截器(Interceptor)、监听器(Listener) Java中过滤器(Filter)、拦截器(Interceptor)、监听器(Listener)三者对比一、基础概念1. Listener 监听器(Servlet层面,事件监听)归属:Servlet规范,属于Java‑Web原生组件,运行在Tomcat容器中。作用:监听Web容器的事件,比如对象的创建、销毁、属性新增/修改/删除,本身不拦截请求。监听对象:ServletContext(整个项目上下文)HttpSession(会话)ServletRequest(单次请求)常见用途:统计在线人数、项目启动初始化加载配置、记录会话创建销毁。执行时机:容器触发事件就执行,和请求链路可无关。实现方式:实现对应监听器接口,@WebListener注册。2. Filter 过滤器(Servlet层面,拦截请求)归属:Servlet规范,Tomcat原生组件。作用:拦截Servlet请求,在请求到达Servlet之前做预处理,响应返回前做后处理。执行位置:在进入SpringMVC的DispatcherServlet之前。用途:编码设置、跨域处理、登录校验、请求黑名单、过滤静态资源。核心方法:doFilter(ServletRequest, ServletResponse, FilterChain),