WEB后端复习——监听器、过滤器

Listener监听器

是Servlet规范中定义的一种特殊类,它用于监听web应用程序中的ServletContext, HttpSession和ServletRequest等域对象的创建与销毁事件,以及监听这些域对象中的属性发生修改的事件。

注解@WebListener

1.ServletContextListener

监听ServletContext域的创建与销毁

创建:服务器启动针对每一个web应用创建servletcontext,触发contextInitialized ( )方法

销毁:服务器关闭前先关闭代表每一个web应用的ServletContext,触发contextDestroyed( )方法。

2.servletRequestListener

监听ServletRequest域创建与销毁

创建:用户每一次访问都会创建request对象,触发requestlnitialized ()方法。

销毁:当前访问结束,request对象就会销毁,触发requestDestroyed方法。

3.ServletContextAttributeListener------监听ServletContext域的属性变化的

当ServletContext对象添加属性时,触发attributeAdded()方法。

当ServletContext对象修改属性时,触发attributeReplaced( )方法。

当ServletContext对象删除属性时,触发attributeRemoved()方法。

在线人数统计


过滤器Filter

Filter有3个阶段,分别是初始化,拦截和过滤,销毁。

初始化阶段:当服务器启动时,我们的服务器(Tomcat)就会读取配置文件,扫描注解,然后来创建我们的Filter。

拦截和过滤阶段:只要请求资源的路径和拦截的路径相同,那么过滤器就会对请求进行过滤,这个阶段在服务器运行过程中会一直循环。

销毁阶段:当服务器(Tomcat)关闭时,服务器创建的Filter也会随之销毁。

doFilter方法中处理完业务逻辑之后,必须添加filterchain.doFilter(servletRequest,servletResponse); 否则请求/响应无法向后传递,一直停留在过滤器中。


配置过滤器

①注解@webFilter("/*")【拦截所有】

②xml中配置

java 复制代码
<filter>
    <filter-name>1</filter-name>
    <filter-class>com.example.jlsystem</filter-class>
</filter>
<filter-mapping>
    <filter-name>3</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

多个过滤器的先后顺序

多个过滤器之间会依次执行,这个依次就是按照过滤器名字的字典顺序来执行的,也就是说,在案例中,Filter1比Filter2的字典顺序靠前,所以就会先执行Filter1,再执行Filter2。在执行完放行前的语句之后,在执行放行后的语句的时候,是和之前的执行顺序是相反的,也就是说,多个过滤器链遵循先进先出,后进后出的原则

我们可以看见Filter01先进行过滤,然后交给Filter02,然后访问资源,然后Filter02对响应进行过滤,然后Filter01对响应进行过滤。

过滤词

相关推荐
间彧14 小时前
什么是Region多副本容灾
后端
爱敲代码的北14 小时前
WPF容器控件布局与应用学习笔记
后端
爱敲代码的北14 小时前
XAML语法与静态资源应用
后端
清空mega14 小时前
从零开始搭建 flask 博客实验(5)
后端·python·flask
爱敲代码的北14 小时前
UniformGrid 均匀网格布局学习笔记
后端
一只叫煤球的猫14 小时前
从1996到2025——细说Java锁的30年进化史
java·后端·性能优化
喵个咪14 小时前
开箱即用的GO后台管理系统 Kratos Admin - 数据脱敏和隐私保护
后端·go·protobuf
我是天龙_绍15 小时前
Java Object equal重写
后端
虎子_layor15 小时前
实现异步最常用的方式@Async,快速上手
后端·spring
一米阳光zw15 小时前
Spring Boot中使用 MDC实现请求TraceId全链路透传
java·spring boot·后端·traceid·mdc