Filter和Listener

Filter:

1、概念:

  web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,做一些事。

  过滤器的作用:一般用于完成一些通用的操作:登录验证、统一编码处理,敏感字符处理….

2、快速入门:

  步骤:

    1、定义一个类,实现Filter接口。

    2、复写方法。

    3、配置拦截路径。

      * web.xml

 <filter>
        <filter-name>demo1</filter-name>
        <filter-class>filter.filter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>demo1</filter-name>
        <!--        拦截路径-->
        <url-pattern>/*</url-pattern> 
    </filter-mapping>

 

      * 注解:@WebFilter(“/*”)

3、过滤器细节。

  1、过滤器执行流程:执行过滤器 —-  执行放行后的资源 —- 回来执行放行代码后面的代码。

  2、过滤器的生命周期方法。

    1、init :在服务器启动后,会创建Filter对象,条用init方法。只执行一次。用来加载资源。

    2、doFilter :每次请求被拦截资源时会执行。执行多次。

    3、destroy:在服务器正常关闭时执行,销毁Filter对象。用于释放资源。

  4、过滤器配置详解。

    1、拦截路径配置。

      * 具体资源路径:/index.jsp :只有访问index.jsp资源时过滤器才执行。

      * 拦截目录: /user/* :。。。。。

      * 后缀名拦截: * . jsp :。。。。

      * 拦截所有资源: /* 

    2、拦截方式配置。

      * 注解配置:设置dispatcherTypes属性。

        1、REQUEST:默认值,浏览器直接请求资源时过滤。

        2、FORWARD:转发访问资源时。。

        3、INCLUDE:包含访问资源时。。。

        4、ERROR:错误跳转资源。

        5、ASYNC:异步访问资源时。

      * web.xml 配置 :设置<dispatcher></dispatcher> 标签。

  5、过滤器链(配置多个过滤器)

    * 执行顺序:两个过滤器:filter1 filter2 :filter1-》filter2-》资源-》filter2 -》filter1.

    * 过滤器先后顺序问题:

      1、注解配置:比较类名的字符串,小的先执行。

      2、web.xml 配置:谁在前面谁先执行。

Listener:

1、概念。

事件监听机制:

  * 事件 :一件事情

  * 事件源:事件发生的地方

  * 监听器 :一个对象

  * 注册监听:将事件、事件源、监听器绑定在一起。发生某个事件后,执行监听器代码。

2、ServletContextListener:监听ServletContext对象的创建和销毁。

  * 

点赞