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

发布于:2024-05-12 ⋅ 阅读:(160) ⋅ 点赞:(0)

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中配置

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

过滤词


网站公告

今日签到

点亮在社区的每一天
去签到