跳转至

过滤器笔记

1、过滤器三要素

  • 拦截:一个请求必须先把它拦住,才能做后续处理
  • 过滤:预设的检查条件,满足条件才可以放行
  • 放行:对于满足要求的请求,放它过去,让它原本要访问什么资源就继续还是访问那个资源

2、过滤器生命周期

生命周期环节 调用的方法 时机 次数
创建对象 无参构造器 默认:Web应用启动时 一次
初始化 init(FilterConfig filterConfig) 创建对象后 一次
处理请求 doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 接收到请求后 多次
清理操作 destroy() Web应用卸载之前 一次

3、拦截请求时的匹配规则

  • 精确匹配
  • 模糊匹配★
  • 前杠后星:/user/*
  • 前星后缀:*.html
  • 根据Servlet名称匹配

4、Filter链

  • 概念:拦截同一资源的多个Filter
  • 执行顺序:由web.xml中filter-mapping配置的顺序决定
  • chain.doFilter(req,resp):将请求放行到Filter链中的一下一个Filter,如果当前Filter已经是最后一个了,那么直接放行这个请求去访问原本要访问的资源