`
newleague
  • 浏览: 1479131 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

过滤器(filter)在web 中的应用(二)

阅读更多

Filters是在请求资源(Servlet或静态内容)或者响应资源时,也可以在请求和响应同时进行时,执行过滤任务。
Filters通过doFilter方法来执行过滤的。每个过滤都要访问一个FilterConfig对象,该对象包含了初始参数,要引用的ServletContext对
象。例如,在调入资源时,执行过滤。
Filters是被配置在web.xml配置文件中的。
一些需要过滤器的情况:
(1)认证Filter
(2)日志和审核Filter
(3)图片转换Filter
(4)数据压缩Filter
(5)密码Filter
(6)令牌Filter
(7)触发资源访问事件的Filter
(8)XSL/TFilter
(9)媒体类型链Filter
方法列表:
(1)destory():当Filter从服务中去除时,由servletcontainer来调用。在Filter的doFilter()的所有线程退出时或在一个时间周期
结束后该方法仅会被调用一次。在webcontainer调用过该方法后,该filte的r实例将不会再调用doFilter()。
该方法提供给Filter一个清除任意资源的时机,这些资源可能是被保存的(例如,内存、文件句柄、线程)或确保持久状态是和在内存Filter
的状态是同步的。
(2)doFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain):Filter的doFilter方法是
在每次一个请求或响应时被调用,来处理过滤链最后的客户端请求资源。FilterChain被传入到此方法中,允许过滤器将request,response
传递到过滤链的下一个过滤。
这个方法的典型设计应该是遵循以下的模式:
<1>检测request
<2>通过特定过滤器对请求数据的内容或头信息进行过滤,并重新封装成request对象
<3>通过特定过滤器对响应数据的内容或头信息进行过滤,并重新封装成response对象
<4>通过chian对象调用过滤链的下一个过滤器,或不传递request/response到过滤链的下一个过滤器从而阻挡请求处理。
<5>在过滤链的下一个过滤器被调用后,直接设置头信息到response对象
(3)init(FilterConfigconfig):当Filter被放入到服务中时,由servletcontainer来调用。在实例化Filter后,init
会被调用一次。
有两种情况,容器不会将将Filter放入服务中:
<1>抛出ServletException时
<2>在容器规定的时间内没有返回实例

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/teedry/archive/2009/12/18/5031767.aspx

分享到:
评论

相关推荐

    Filter(过滤器)简介和工作原理

    1. init():在 Web 应用程序启动时,Web 服务器将根据 web.xml 文件中的配置信息来创建每个注册的 Filter 实例对象,并将其保存在服务器的内存中。Web 容器创建 Filter 对象实例后,将立即调用该 Filter 对象的 init...

    Web应用与开发作业

    实现一个禁止缓存的过滤器。 要求和提示: (1)禁止浏览器缓存所有动态页面; (2)有3个http响应头字段可以禁止浏览器缓存当前页面,它们在Servlet中的示例代码如下。 response.setDateHeader("Expires",-1); ...

    2021-05-28-WebAPI高级应用三--过滤器Filter.rar

    2021-05-28-WebAPI高级应用三--过滤器Filter

    Tomcat中用web.xml控制Web应用详解

    过滤器可以在请求处理过程中执行一些操作,例如身份验证、日志记录等。容器将创建 filter 中的类实例,并将其作为过滤器。filter-mapping 配置节用于指定过滤器的映射关系。 Servlet 生命周期 Servlet 生命周期...

    Servlet过滤器小实例

    在一个常规的web应用中,我们经常要对访问的请求进行过滤,进而来阻挡一些非法的请求。我们完成这个操作可以是在后台逻辑中进行判断,但是这样就会让后台逻辑显得很混乱。比较好也比较常见的方法是用专门的servlet...

    Java Web基础入门第七十九讲 Filter(过滤器)——Filter(过滤器)常见应用(三):权限管理系统(下)-附件资源

    Java Web基础入门第七十九讲 Filter(过滤器)——Filter(过滤器)常见应用(三):权限管理系统(下)-附件资源

    简单理解Struts2中拦截器与过滤器的区别及执行顺序

    Struts2 中的拦截器(Interceptor)和过滤器(Filter)是两个不同的概念,虽然它们都可以影响请求的处理过程,但它们的作用域、执行顺序和实现机制都有所不同。 拦截器(Interceptor) 拦截器是 Struts2 框架中的...

    过滤器实现get请求和POST请求的中文乱码问题

    使用过滤器实现GET请求和POST请求的中文乱码问题,只需在自己的Web应用中的web.xml中配置该filter即可使用。

    预防XSS攻击和SQL注入XssFilter

    XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin...

    过滤器与监听器

    Web页面的过滤与监听 了解Filter基本概念和适用场合 掌握使用Filter的基本步骤 会定义和使用Filter 掌握全局对象监听器的使用和应用 掌握会话对象监听器的使用和应用

    filterus-masterPHP过滤库.zip

    &lt;?... ... use Filterus\Filter; $filter = Filter::map(array('foo' =&gt; 'string,min:4,default:test'));...通过使用过滤器,您能够确保应有程序获得正确的输入类型。您应该始终对外部数据进行过滤!

    PHP Filter过滤器全面解析

    PHP 过滤器用于验证和过滤...通过使用过滤器,您能够确保应有程序获得正确的输入类型。 您应该始终对外部数据进行过滤! 输入过滤是最重要的应用程序安全课题之一。 什么是外部数据? •来自表单的输入数据 •Cook

    ASP.NET过滤器的应用方法介绍

    在J2EE Web开发中有过滤器filter,该filter可以对指定的URL访问进行拦截,并执行过滤器的方法,根据实际应用情况,在过滤器中修改请求的代码、判断会话信息,也可以做权限控制,总之这个过滤器是非常有意义的,也...

    智能网页过滤器「Smart Web Filter」-crx插件

    我们引入了一个Web过滤器,该过滤器将用户不想要的主题作为输入,并使用Wikidata查找相关术语。 应用我们的过滤算法后,不需要的内容将被隐藏起来,如果用户仍然希望看到它,则可以决定取消隐藏它。 我们的系统设法...

    web.xml详细说明

    &lt;filter&gt;&lt;/filter&gt; 过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。 &lt;filter-mapping&gt;&lt;/filter-mapping&gt; 一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面...

    JSPservlet中web.xml详细配置指南(包含所有情况)

    其中,context-param 配置节用于提供应用程序上下文信息,listener 配置节用于定义事件监听程序,filter 配置节用于定义过滤器,而 servlet 配置节用于定义 servlet。 context-param 配置节 --------------------- ...

    struts2工作原理及拦截器和过滤器

    在实际应用中,开发者可以根据具体情况选择使用 Interceptor 或者 Filter 来实现某些功能。例如,在登录验证中,可以使用 Interceptor 来检查用户的登录状态,而在记录用户请求日志中,可以使用 Filter 来记录所有...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    第20章 filter在web开发中的应用 588 20.1 过滤器概述 588 20.2 filter api 589 20.2.1 filter接口 589 20.2.2 filterconfig接口 590 20.2.3 filterchain接口 590 20.3 过滤器的部署 591 20.4 过滤器的开发 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    第20章 filter在web开发中的应用 588 20.1 过滤器概述 588 20.2 filter api 589 20.2.1 filter接口 589 20.2.2 filterconfig接口 590 20.2.3 filterchain接口 590 20.3 过滤器的部署 591 20.4 过滤器的开发 ...

    dms-filter-master基于标注的PHP过滤库.zip

    &lt;?... namespace DMS\Filter; class Filter implements FilterInterface ...通过使用过滤器,您能够确保应用程序获得正确的输入类型。您应该始终对外部数据进行过滤!输入过滤是最重要的应用程序安全课题之一。

Global site tag (gtag.js) - Google Analytics