什么是过滤器?_陪你去流浪lv的博客-程序员宝宝

技术标签: 过滤器  JavaWeb  

什么是过滤器?

1.概念:
过滤器是一个程序,它先于与之相关的servlet或JSP页面运行在服务器上。过滤器可附加到一个或多个servlet或JSP页面上,并且可以检查进入这些资源的请求信息。在这之后,过滤器可以作如下的选择:
①以常规的方式调用资源(即,调用servlet或JSP页面)。
②利用修改过的请求信息调用资源。
③调用资源,但在发送响应到客户机前对其进行修改。
④阻止该资源调用,代之以转到其他的资源,返回一个特定的状态代码或生成替换输出。
2.过滤器的工作原理
在Servlet作为过滤器使用时,它可以对客户的请求进行处理。处理完成后,它会交给下一个过滤器处理,这样,客户的请求在过滤链里逐个处理,直到请求发送到目标为止。例如,某网站里有提交“修改的注册信息”的网页,当用户填写完修改信息并提交后,服务器在进行处理时需要做两项工作:判断客户端的会话是否有效;对提交的数据进行统一编码。这两项工作可以在由两个过滤器组成的过滤链里进行处理。当过滤器处理成功后,把提交的数据发送到最终目标;如果过滤器处理不成功,将把视图派发到指定的错误页面。
3.过滤器的生命周期
public void init(FilterConfig filterConfig) throws ServletException;//初始化
和我们编写的Servlet程序一样,Filter的创建和销毁由WEB服务器负责。 web 应用程序启动时,web 服务器将创建Filter 的实例对象,并调用其init方法,读取web.xml配置,完成对象的初始化功能,从而为后续的用户请求作好拦截的准备工作(filter对象只会创建一次,init方法也只会执行一次)。开发人员通过init方法的参数,可获得代表当前filter配置信息的FilterConfig对象。

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException;//拦截请求
这个方法完成实际的过滤操作。当客户请求访问与过滤器关联的URL的时候,Servlet过滤器将先执行doFilter方法。FilterChain参数用于访问后续过滤器。

public void destroy();//销毁
Filter对象创建后会驻留在内存,当web应用移除或服务器停止时才销毁。在Web容器卸载 Filter 对象之前被调用。该方法在Filter的生命周期中仅执行一次。在这个方法中,可以释放过滤器使用的资源。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jhl19981125/article/details/102845486

智能推荐

Rust类型转换_rust 类型转换_liberg的博客-程序员宝宝

as关键字用于原生数值类型之间的转换;字符串和数值类型之间的转换;String和&str类型的转换;From Into Deref

.Net Micro Framework - USB Mass Storage功能实现_weixin_33778778的博客-程序员宝宝

1. 说明由于.Net Micro Framework的USB驱动架构中,没有为Mass Storage功能提供原生支持,所以除了要编写Mass Storage主体代码外,还需要在原有的USB驱动中添加部分枚举代码。其实从结构上来说,该部分代码应该添加在PAL层,不过考虑到这层代码为.Net Micro Framework Poring Kit Rtm...

Deep & Cross Network for Ad Click Predictions【论文记录】_Novelin的博客-程序员宝宝

Deep&Cross 在 Wide&Deep 基础上改了 Wide 为 Cross Network,想要自动进行特征学习,而不是人为手工选取特征全文精华:Cross Network 加入input 参数共享

群晖php7.0如何使用,想体验群晖DSM 7.0系统又不想踩坑?教你虚拟机安装DSM7.0_君有点小暖的博客-程序员宝宝

点击上图查看详情前几天的Synology 2021 大会上,群晖发布了DSM 7.0 Beat版,但这个并非是正式版,所以,暂时先不建议大家升级,因为有可能BUG比较多,而且有“坑”,比如第三方套件transmission无法使用,已有用户反馈。所以,在没有解决方法出来之前,玩PT的用户不建议升级。如果你非要升级,最好备份数据,虽然升级系统并不会删除数据,但毕竟测试版嘛。。。如果你按捺不住自己想...

随便推点

最优化局部极小点的条件_局部极小点的必要条件_AEP_WYK的博客-程序员宝宝

回忆一下关于元实值函数的的求导问题,函数的一阶导数为 函数的梯度正好是导数的转置,即;函数的二阶导数,也称为hessian矩阵,可表示为: 对于向量,和约束集中的某个点,如果存在一个实数使得对于所有,仍然在约束集内,即,则称为处的可行方向!为元实值函数...

虎牙直播笔试_WYXHAHAHA123的博客-程序员宝宝

1.训练过程中出现nan有哪些可能的原因,并给出解决办法2.写出对于灰度图像进行中值滤波的伪代码3.从网络结构角度,给出压缩CNN网络的方法4.TCP协议中的ESTABLESHED是什么意思ESTABLISHED状态 握手使能,也就是建立了连接ESTABLISHED的意思是建立连接。表示两台机器正在通信。5.const关键字用在不同场景下的作用6.进程与线程的区别...

MARS: 一个针对大尺度人的reid视频基准_计算机视觉-Archer的博客-程序员宝宝

MARS: A Video Benchmark for Large-Scale Person Re-identification下面是旷世的算法介绍:http://www.sohu.com/a/207091906_418390(视频震撼)一些博客对MARS的总结:https://blog.csdn.net/baidu_39622935/article/details/82867177...

/struts-tags not found ,/struts-dojo-tags not found 上线后异常解决方案_qq_38472465的博客-程序员宝宝

/struts-tags not found ,/struts-dojo-tags not found 上线后异常解决方案

一名程序员眼里中国量化投资的未来_量化密码库的博客-程序员宝宝

先直接上图然后做一名搬运工,接近原文演讲。文字出自一名爱好量化投资的程序员,在今天金牛奖量化投资论坛上的发言。酸爽的广东普通话加上不那么顺畅的演说能力,现场朋友们见谅啦。首先,预测中国量化投资的未来,一个办法就是看一下美国老师的现状。美国的资产管理有两个趋势:一个是共同基金的逐渐指数化,另外一个趋势是对冲基金的逐渐走向量化。国外的对冲基金,相当于中国的证券私募。最初的对冲基...

推荐文章

热门文章

相关标签