filter&listener

什么是filter

Filter:一个实现了特殊接口(Filter)的Java类. 实现对请求资源(jsp,servlet,html,)的过滤的功能.

过滤器是一个运行在服务器的程序, 优先于请求资源(Servlet或者jsp,html)之前执行. 过滤器是javaweb技术中最为实用的技术.

3.2过滤器的作用

对目标资源(Servlet,jsp,html)进行过滤.

应用场景:登录权限检查,解决网站乱码,过滤敏感字符 ...

2.1配置文件方式

  1. 创建一个过滤器类,实现Filter接口

  2. 在web.xml中配置Filter

2.2注解方式

  1. 创建一个过滤器类,实现Filter接口

  2. 在Filter类上面添加@WebFilter("拦截路径")

回顾一下Serlvet生命周期:

init:初始化 默认在来了第一次请求时初始化,可以配置启动项loadOnStartup在服务器启动提前加载

service:服务 当来了请求时,提供服务

destroy:销毁 服务器正常关闭或者项目从服务器移除

Servlet和Filter生命周期的区别:

Filter是在服务器启动时进行初始化,而Servlet是默认来了第一次请求时进行初始化。

Filter是在来了请求并且请求资源刚好是要拦截的资源,就会执行过滤。

 * 过滤器拦截路径
 *     1.完全路径匹配:以/开头 /不能丢  eg:/demo01  表示只过滤/demo01的请求资源
 *          @WebFilter("/demo01")
 *     2.目录匹配:以/开头 以*结尾     eg:/user/*   表示过滤user下的所有请求资源
 *          @WebFilter("/user/*")
 *     3.扩展名匹配:以*开头          eg:*.do      表示过滤所有以.do结尾的请求资源
 *          @WebFilter("*.do")
 *     4.全局匹配:/*  表示过滤所有请求资源

  • 创建一个java类,实现Filter接口

  • 在类上添加注解@WebFilter("拦截路径")

  • 注意:过滤器一定要放行!!!

  • Filter生命周期描述

  • 服务器启动的时候, 会调用init()方法进行初始化 【调用一次】

  • 当每次请求路径和过滤器的拦截路径一致时就执行一次doFilter()方法,进行过滤 【调用多次】

  • 服务器正常关闭或者项目从服务器移除, 调用destory()方法进行销毁 【调用一次】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值