29-过滤器、监听器

一,过滤器

1.1 概念

生活中的过滤器:净水器

web应用中的过滤器:当访问服务器的某些资源时,过滤器可以把请求拦截下来,完成一些特殊的功能

过滤器的作用:登录验证、统一处理编码、敏感字的过滤

web三大组件之一:servlet、filter、listener

1.2 使用步骤

  1. 定义类实现类Filter接口

  2. 重写方法

  3. 配置要过滤的资源路径

     <filter>
        <display-name>LoginFilterdisplay-name>
        <filter-name>LoginFilterfilter-name>
        <filter-class>com.qf.filter.LoginFilterfilter-class>
      filter>
      <filter-mapping>
        <filter-name>LoginFilterfilter-name>
        <url-pattern>/*url-pattern>
      filter-mapping>
    

1.3 执行流程

  1. 启动服务器时,执行 init() 初始化功能
  2. 当访问了过滤器中配置的拦截路径的资源时,该资源的访问会被拦截,并执行 doFilter() 方法
  3. 执行功能的增强
  4. 放行:chain.doFilter(request, response);
  5. 访问指定资源
  6. 执行放行后的代码

1.4 过滤器的生命周期

  1. init():初始化过滤器,服务器启动时执行
  2. doFilter():执行拦截,访问了配置的拦截路径时执行,每次访问都会执行
  3. dostroy():释放资源,只有在正常关闭服务器时才会执行

1.5 过滤器链

配置多个过滤器

执行顺序:

  1. 过滤器1
  2. 过滤器2
  3. 放行后的资源
  4. 过滤器2
  5. 过滤器1

1.6 过滤路径的配置

  1. 拦截指定资源:/index.jsp
  2. 拦截目录:/test/*
  3. 扩展名拦截:*.jsp
  4. 拦截所有:/*

二,监听器

2.1 概述和分类

概念:web的三大组件之一

分类:

  1. 域对象生命周期:
    1. ServletContextListener
    2. HttpSessionListener
    3. ServletRequestListener
  2. 域对象中数据的变化:
    1. ServletContextAttributeListener
    2. HttpSessionAttributeListener
    3. ServletRequestAttributeListener
  3. HttpSession的钝化和活化
    1. HttpSessionActivationListener
    2. HttpSessionBindingListener

2.2 使用步骤

  1. 自定义类实现Listener接口

  2. 重写方法

  3. 配置

    <listener>
      	<listener-class>com.qf.listener.MyServletContextListenerlistener-class>
     listener>
    

你可能感兴趣的:(java_知识梳理)