跟小博老师一起学Servlet ——Servlet之过滤器

概念

过滤器在我们日常生活很常见,比如通过净水器过滤水中的杂质,带口罩可以过滤空气了中的PM2.5进入我们身体。Web开发中通过Filter可以对服务器所管理的资源如:servlet、jsp、html、图片等进行拦截,从而实现业务上的需求。比如实现文字的统一编码、权限处理、过滤一些敏感词等。

Filter

javax.servlet.Filter接口是从Servlet2.3后新加的功能,如编写的JAVA类实现了Filter接口,我们通此类为过滤器。使用过滤器可以实现用户在请求某资源前进行拦截,在答应时也可进行相关的处理。

 

过滤时序

006zipb5zy792w3NSijef&690

Filter实现原理

当用户的请求符合设定的过滤规则时,在执行doXXX()方法前先执行过滤器中的doFilter()方法。在doFilter()方法中根据业务规则,可将请求转发到下一个资源最终达到目标资源,也可跳转到其它资源。

Filter生命周期

Filter与Servlet一样都是由Web窗口容器负责管理,但与Servlet不同的是Filter是随着容器的启动而启动。容器实例化Filter可马上调用init()方法,有符合过滤规则的请求来时执行doFiler()方法,容器关闭时调用destory()方法释放过滤器中的资源后,销毁Filter实例。

过滤

由若干个Filter组成的过滤器我们称其为过滤器链,它好比自行车链条任何一个过滤器中断都会导致请求到达目标资源。它的执行顺序符合计算机中栈的定义,从而在某些控制器层框架中有了拦截器栈的概念,其本质就是过滤器链。

 

006zipb5zy792w6xX0S7a&690 

 

过滤器的概念和实现原理就聊到这边,下节小傅老师将带大家一起实现过滤器和应用场景。

转载于:https://my.oschina.net/u/2971691/blog/845852

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值