JavaWeb三大组件之一Filter(过滤器)

定义

拦截所有访问web资源的请求或者响应(servlet、Jsp页面、HTML页面),从而实现我们自己的业务逻辑,这些逻辑可以是实现访问权限的控制、过滤敏感词、压缩响应等功能。

原理 

过滤器是"链接"在容器的处理过程中的,它会在servlet处理器之前访问进入的请求,并且在响应信息返回客服端之前访问这些响应信息。这样就可以动态的修改请求和响应中的内容。

创建Filter

创建web项目:

 

或者像这样建立web项目:

 

 

  

添加Tomcat服务器:

 

如果没有SmartTomcat,只有Tomcat像下面图片中这样:

 

则选择Tomcat里面的local,并向下面这样配置:

 

 

 

启动程序:

 

 

 添加java包和servlet依赖:

创建过滤器并实现它的方法:

 

在web.xml中注册Filter: 

 

当我们在执行的时候,发现会报404错误,那是因为我们没有重写Filter里面的init方法,在用Filter的时候必须重写init方法,因为web 工程启动的时候执行构造器方法和init 初始化方法 ,如果不重写初始化方法,就不会走过滤器。

重写Filter里面的init方法,然后执行过滤器:

 

 

我们会发现在浏览器中什么都没有输出,但是控制台中输出了doFilter里面内容,说明我们的过滤器起作用了 ,他拦截了所有的请求。当我们在doFilter方法里面加上下面的逻辑,浏览器就会输出内容:

 

 

 

上面filterChain里面的doFilter方法它的作用就是请求放行到下一个资源,这个资源有可能是过滤器,也可能是客户端。

 

Filter的生命周期 

 

上面每一步分别对应不同的方法:

实例化对应Filter的构造器方法,初始化对应init()方法、销毁对应的是destroy()方法 

Filter它是一个接口,该接口里面有如下几个方法:

 

destroy()

当web服务器调用该方法时,表示过滤器将被销毁。

init()

当web服务器调用该方法时,表示过滤器将被注册到服务中

doFil

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咸鱼吐泡泡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值