zoukankan      html  css  js  c++  java
  • 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对象的创建和销毁。

      * 

  • 相关阅读:
    Leetcode 1711. 大餐计数(桶)
    macOS下安装powerline-status失败(报错Could not install packages due to an EnvironmentError)
    macOS下安装oh my zsh失败(报错Connection refused)
    Chapter 10 Operator Overloading
    牛客IOI周赛26-普及组 B. 子序列(int128)
    关于状压DP中子集状态的枚举
    2021蓝桥杯省赛第一场C/C++A组 试题E:回路计数(状压DP)
    AcWing 2879. 画中漂流(简单DP)
    Leetcode 525. 连续数组(前缀和性质/map)
    牛客小白月赛34 B. dd爱探险(状压DP)
  • 原文地址:https://www.cnblogs.com/zhangyuhao/p/11060684.html
Copyright © 2011-2022 走看看