过滤器(Filter)

过滤器(Filter)

一、概念

  • Java Web的三大组件
  • Servlet中组件一共有三种:Servlet、过滤器、监听器
  • Servlet范畴的技术,提供的标准【得自己实现】

二、过滤器的使用场景:

  • 对用户登录权限进行拦截
  • 实现一些日志记录的功能
  • 集中处理处理一些公共的功能,如:汉字编码和解码

三、特点

  • 按照配置路径匹配,请求web的哪些资源会走过滤器
  • 根据过滤器的执行流程:放行,才能往下走

四、过滤器编写步骤

  1. 自定义类,实现Filter 接口
  2. 实现接口中的方法,其中doFilter()就是执行过滤任务。(类似于Servlet中的service()方法)
  3. 和Servlet 一样需要进行web.xml配置,知道有过滤器(注解也可以)
  4. Filter由web服务器管理的: 独立Filter与Web资源,由url-pattern配置路径,决定了哪些请求会走过滤器

五、过滤器的生命周期

(一)、服务器管理创建,启动的时候生命周期就开始:

  • 构造方法:服务器管理会创建过滤器对象
  • init(FilterConfig config):初始化方法,在这之前会创建一个配置文件对象FilterConfig

(二)、在服务器启动之后,只创建了一个对象,每次调用都是使用的同一个过滤器对象

  • 每次会调用doFilter()方法

(三)、正常关闭服务器的时候

  • 使用Filter 对象调用destory()方法销毁过滤器Filter

六、 过滤器链FilterChain

  • 过滤器的顺序是根据配置文件中配置的顺序
  1. 一次请求可以同时经过多个过滤器,每个过滤器会将请求传递给下一个过滤器。
  2. 如果下一个没有过滤器了,则传递给Web资源。
  3. 多个过滤器组成了一个过滤器链。
  4. 请求的时候经过每一个过滤器,响应的时候以相反顺序再回到每一个过滤器。

七、URL过滤方式

匹配方式匹配哪些资源示例
完全匹配必须与访问地址精确匹配/hello、/a/b
目录匹配匹配某一个目录下所有的Web资源/system/*、/ *
扩展名匹配*.扩展名,匹配某一类扩展名*.jsp、 *.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值