栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

简单了解Servlet过滤器

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简单了解Servlet过滤器

一.什么是过滤器?

Servlet过滤器从字面上的字意理解为经过一层次的过滤处理才达到使用的要求,而其实Servlet过滤器就是服务器与客户端请求与响应的中间层组件,在实际项目开发中Servlet过滤器主要用于对浏览器的请求进行过滤处理,将过滤后的请求再转给下一个资源。

二.过滤器的工作原理

当客户端发出Web资源的请求时,Web服务器根据应用程序配置文件设置的过滤规则进行检查,客户请求满足过滤规则,则对客户请求/响应进行拦截,对请求头和请求数据进行检查或改动,并依次通过过滤器链,最后把请求/响应交给请求的Web资源处理。请求信息在过滤器链中可以被修改,也可以根据条件让请求不发往资源处理器,并直接向客户发回一个响应。当资源处理器完成了对资源的处理后,响应信息将逐级逆向返回。同样在这个过程中,用户可以修改响应信息,从而完成一定的任务。如图1所示:在Servlet2.4规范中,对2.3规范进行了扩展,使得Servlet过滤器可以应用在客户机和Servlet之间。Servlet和Servlet或JSP页面之间,以及各个JSP页面之间。

三.过滤器的特点

(1)Servlet过滤器可以检查和修改ServletRequest和ServletResponse对象

(2)Servlet过滤器可以被指定和特定的URL关联,只有当客户请求访问该URL时,才会触发过滤器

(3)Servlet过滤器可以被串联在一起,形成管道效应,协同修改请求和响应对象

四.过滤器的使用

(1)查询请求并作出相应的行动。

(2)阻塞请求-响应对,使其不能进一步传递。

(3)修改请求的头部和数据。用户可以提供自定义的请求。

(4)修改响应的头部和数据。用户可以通过提供定制的响应版本实现。

(5)与外部资源进行交互。

五.过滤器的应用场景

1.认证过滤;

2.登录和审核过滤;

3.图像转换过滤;

4.数据压缩过滤;

5.加密过滤;

6.令牌过滤;

7.资源访问触发事件过滤;

8.XSL/T过滤;

9.Mime-type过滤。

六.过滤器与拦截器的区别

1.拦截器是基于java的反射机制的,而过滤器是基于函数回调;

2.拦截器不依赖与servlet容器,过滤器依赖与servlet容器;

3.拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用(比如静态资源文件之类的);

4.拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问;

5.在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次;

6.拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/894883.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号