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

概念

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

Filter

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

过滤时序

Filter实现原理

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

Filter生命周期

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

过滤

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容