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对响应进行过滤。

过滤词

相关推荐
Asthenia04122 小时前
Spring AOP 和 Aware:在Bean实例化后-调用BeanPostProcessor开始工作!在初始化方法执行之前!
后端
Asthenia04123 小时前
什么是消除直接左递归 - 编译原理解析
后端
Asthenia04123 小时前
什么是自上而下分析 - 编译原理剖析
后端
Asthenia04123 小时前
什么是语法分析 - 编译原理基础
后端
Asthenia04123 小时前
理解词法分析与LEX:编译器的守门人
后端
uhakadotcom3 小时前
视频直播与视频点播:基础知识与应用场景
后端·面试·架构
Asthenia04124 小时前
Spring扩展点与工具类获取容器Bean-基于ApplicationContextAware实现非IOC容器中调用IOC的Bean
后端
bobz9655 小时前
ovs patch port 对比 veth pair
后端
Asthenia04125 小时前
Java受检异常与非受检异常分析
后端