什么是过滤器?它有什么作用,什么是过滤器理论
如何解决写爬虫IP受阻的问题?立即使用。
过滤器是在服务器上运行的程序,在servlet或JSP页面之前运行。过滤器可以附加到一个或多个servlet或JSP页面,并且可以检查进入这些资源的请求的信息。
之后,过滤器可以做出以下选择:
以常规方式调用资源(即调用servlet或JSP页面)。
使用修改后的请求信息调用资源。
调用资源,但在向客户端发送响应之前对其进行修改。
停止调用该资源,转到其他资源,返回特定的状态代码或生成替代输出。
过滤器的工作原理
当Servlet用作过滤器时,它可以处理客户请求。处理完之后会交给下一个过滤器,这样客户的请求就会在过滤器链中逐一处理,直到请求被发送到目的地。比如某网站有一个提交“修改注册信息”的网页。用户填写修改后的信息并提交后,服务器在处理时需要做两件事:判断客户端的会话是否有效;提交的数据应统一编码。这两个任务可以在由两个过滤器组成的过滤器链中处理。当过滤器被成功处理时,提交的数据被发送到最终目标;如果过滤处理不成功,视图将被发送到指定的错误页面。
过滤器的生命周期
公共void init(filter config filter config)引发ServletException//初始化和我们写的Servlet程序一样,WEB服务器负责Filter的创建和销毁。web应用启动时,web服务器会创建filter的实例对象,调用其init方法,读取web.xml配置,完成对象的初始化函数,从而为拦截后续的用户请求做准备(Filter对象只会创建一次,init方法只会执行一次)。开发人员可以通过init方法的参数获取表示当前过滤器配置信息的FilterConfig对象。
public void do filter(servlet request请求,ServletResponse响应,FilterChain链)抛出IOException,ServletException//拦截请求此方法完成实际的过滤操作。当客户机请求访问与过滤器相关联的URL时,Servlet过滤器将首先执行doFilter方法。FilterChain参数用于访问后续过滤器。
public void destroy();//Destroy Filter对象创建后会驻留在内存中,只有在web应用被移除或者服务器停止时才会被销毁。在Web容器卸载Filter对象之前调用。此方法在过滤器的生命周期中只执行一次。在这种方法中,过滤器使用的资源可以被释放。
推荐教程:什么是《java教程》以上的滤镜?更多详情请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。