JavaWeb学习篇9_Filter过滤器、Listener监听器

目录

  • Filter过滤器
    • 概念

    • 快速入门

    • 过滤器执行流程

    • 过滤器的生命周期方法

    • 过滤器配置详解

      • 拦截路径配置
      • 拦截方式配置
        • 注解配置
        • web.xml配置
    • 过滤器链(配置多个过滤器)

      • 执行顺序
      • 过滤器先后顺序问题
    • 案例

      • 登录验证
      • 敏感词过滤
        • 增强对象的功能(设计模式)
  • Listener监听器
    • 概念
    • ServletContextListener

开始

一、Filter过滤器

1.1概念

JavaWeb学习篇9_Filter过滤器、Listener监听器

简单理解,就是可以对浏览器的请求过滤(放行不放行)、加工(对象功能增强)
JavaWeb学习篇9_Filter过滤器、Listener监听器

1.2快速入门

JavaWeb学习篇9_Filter过滤器、Listener监听器
JavaWeb学习篇9_Filter过滤器、Listener监听器

  • 拦截路径注解配置

JavaWeb学习篇9_Filter过滤器、Listener监听器
JavaWeb学习篇9_Filter过滤器、Listener监听器

JavaWeb学习篇9_Filter过滤器、Listener监听器
JavaWeb学习篇9_Filter过滤器、Listener监听器

  • 拦截路径web.xml配置
    JavaWeb学习篇9_Filter过滤器、Listener监听器

1.3过滤器执行流程、生命周期方法

JavaWeb学习篇9_Filter过滤器、Listener监听器

Filter方法

  • init()方法执行一次:服务器启动的时候执行
  • doFilter()方法可执行多次:多次请求放行的时候
  • destory()方法执行一次:服务器正常关闭时执行

JavaWeb学习篇9_Filter过滤器、Listener监听器

1.3过滤器配置详解

JavaWeb学习篇9_Filter过滤器、Listener监听器
JavaWeb学习篇9_Filter过滤器、Listener监听器
JavaWeb学习篇9_Filter过滤器、Listener监听器

1.4过滤器链

JavaWeb学习篇9_Filter过滤器、Listener监听器

1.5案例

  • 案例1

JavaWeb学习篇9_Filter过滤器、Listener监听器

JavaWeb学习篇9_Filter过滤器、Listener监听器

JavaWeb学习篇9_Filter过滤器、Listener监听器

  • 案例2

JavaWeb学习篇9_Filter过滤器、Listener监听器

JavaWeb学习篇9_Filter过滤器、Listener监听器

实现此案例需要设计模式思想,因为别的对象不能直接设置request对象的属性

而我们需要替换原request对象的某些敏感属性值

因此需要 对 request 对象的 getParamter()方法增强(加工),生成一个新的request对象,然后放行

  • 动态代理理解

JavaWeb学习篇9_Filter过滤器、Listener监听器
JavaWeb学习篇9_Filter过滤器、Listener监听器

对于invoke()方法,我们需要将真实对象 和 动态代理对象之间建立联系(类似反射思想)
JavaWeb学习篇9_Filter过滤器、Listener监听器

动态代理(中介)
JavaWeb学习篇9_Filter过滤器、Listener监听器

  • 回到案例

JavaWeb学习篇9_Filter过滤器、Listener监听器

JavaWeb学习篇9_Filter过滤器、Listener监听器

二、Listener监听器

JavaWeb学习篇9_Filter过滤器、Listener监听器

JavaWeb学习篇9_Filter过滤器、Listener监听器

  • ServletContextListener简单介绍
    JavaWeb学习篇9_Filter过滤器、Listener监听器

创建子类实现 接口 ServletContextListener 后,

  • 可以直接加上注解@WebListener

  • 可以在web.xml文件配置监听器

JavaWeb学习篇9_Filter过滤器、Listener监听器

一般用法

JavaWeb学习篇9_Filter过滤器、Listener监听器


JavaWeb学习篇9_Filter过滤器、Listener监听器
JavaWeb学习篇9_Filter过滤器、Listener监听器