filter and listener

过滤器可以拦截request和response对象,进而操作里面的数据,
过滤器实际上是url路径级别的拦截(粗粒度)

1.Filter快速入门

  • 创建一个类,实现Filter接口
    • init()
    • doFilter()
      chain.doFilter(request,response) //放行
    • destory()
  • 过滤器的注册和路径映射

2.Filter的生命周期

  • 服务器启动前会执行了Filter构造和初始化方法
  • 每次访问被拦截的对象会执行doFilter()过滤的方法
  • 关闭服务器会执行destory()销毁过滤器

3.FilterConfig对象

init(FilterConfig fConfig)
可以在注册的时候配置过滤器的初始化参数
获取初始化参数:

  • 在初始化方法init()中获取
    String initParameterValue = fConfig.getInitParameter("encoding")
  • 在访问拦截对象的时候获取
    首先设置私有的全局变量private filterConfig
    然后在初始话方法init的将FilterConfig对象赋值给全局变量
    this.filterConfig = fConfig
    最后在doFilter中可以调用FilterConfig对象
    filterConfig.getInitParameter("encoding")