Filter&&Listener

Filter

  1. 概念:filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目标资源访问前后进行逻辑处理

  2. 设置步骤

    1. 创建类实现Filter接口

    2. 在doFilter方法中编写放行和拦截的代码

    3. 配置拦截路径

  3. url­pattern

    1. 目录匹配和扩展名匹配不能同时使用,会造成服务器无法启动

    2. 没有缺省配置

    3. @WebFilter("/*")//访问所有资源之前,都会执行该过滤器

  4. dispatcher:访问的方式

    1. REQUEST:默认值,代表直接访问某个资源时执行filter

    2. FORWARD:转发时才执行filter

    3. INCLUDE: 包含资源时执行filter

    4. ERROR:发生错误时 进行跳转是执行filter

  5. 案例

     案例:敏感词汇过滤 
    * 需求:
    1. 对day17_case案例录入的数据进行敏感词汇过滤
    2. 敏感词汇参考《敏感词汇.txt》
    3. 如果是敏感词汇,替换为 ***
    * 分析:
    1. 对request对象进行增强。增强获取参数相关方法
    2. 放行。传递代理对象
    * 增强对象的功能:
    * 设计模式:一些通用的解决固定问题的方式
    1. 装饰模式
    2. 代理模式
    * 概念:
    1. 真实对象:被代理的对象
    2. 代理对象:
    3. 代理模式:代理对象代理真实对象,达到增强真实对象功能的目的
          * 实现方式:
          1. 静态代理:有一个类文件描述代理模式
          2. 动态代理:在内存中形成代理类
          * 实现步骤:
              1. 代理对象和真实对象实现相同的接口
              2. 代理对象 = Proxy.newProxyInstance();
              3. 使用代理对象调用方法。
              4. 增强方法
          * 增强方式:
          1. 增强参数列表
          2. 增强返回值类型
          3. 增强方法体执行逻辑

Listener

  • 概念:web的三大组件之一。

    • 事件监听机制

      • 事件 :一件事情

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

      • 监听器 :一个对象

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

  • 监听器就是监听某个对象的的状态变化的组件,其主要是监听三个域对象(ServletContext域,HttpSession域,ServletRequest域)的创建和销毁以及域对象内的属性的改变,一共有6+2个

  • Add to Phrasebook
     
    • No word lists for English -> ...
       
    • Create a new word list...
  • Copy

你可能感兴趣的:(Filter&&Listener)