Filter简介——理论篇
2016-09-25 15:31
357 查看
引言
在最近的学习中,使用到了filter,小编觉得我们要知其然,更要知其所以然,所以今天我们来叨叨filter……
Filter简介
中文名字就是过滤器,所以大家可以根据他的中文名字大概的知道这个东东是干什么的。Filter技术是servlet2.3新增加的功能,大部分的jsp/servlet容器都支持。与servlet相似,filter是一些web应用程序组件,可以绑定到一个web应用程序中。但是Filter 不是一个servlet,它不能产生一个response,与其他web应用程序组件不同的是,filter是“链”在容器的处理过程中的。这就意味着filter会在servlet处理期之前访问一个进入的请求,并且在外发相应信息返回到客户前访问这些响应信息。这种访问使得filter可以检查并修改请求和响应的内容。
Filter放在容器结构的位置
通过上图,我们可以知道,filter放在web资源之前,可以在请求抵达它所应用的web资源(可以是一个servlet、一个Jsp页面等)之前截获进入的请求,并且在它返回到客户之前截获输入请求。处于客户端与被请求的资源之间,目的是重用代码。
Filter链
一个Filter可以负责拦截多个请求或响应,一个请求或响应也可以被多个filter拦截。Filter和AOP相似,都是面向切面的编程,可以看做是一种横切性的技术,体现了“职责连模式“。在web.xml中哪个先配置,就先调用哪个。Filter种类
1、用户授权的Filter: Filter 负责检查用户请求,根据请求过滤用户非法请求。2、日志Filter: 详细记录某些特殊的用户请求。
3、负责解码的Filter: 包括对非标准编码的请求解码。
4、能改变XML 内容的XSLTFilter 等。
Filter用处
1、其实是对request和response请求进行了拦截。2、提供了一种声明式服务,具有可插拔的能力(用的时候放上去,不用的时候可以随时拿下来)。
3、Filter只对Post请求起作用。
总结
Filter是一个功能强大的东西,在开发初期的时候我们可以为一个web应用程序的新功能建立模型,对请求进行验证或者是其他的响应,而且还可以我们还可以在旧的代码上使用filter添加新功能。是不是很强大!若想知道怎么用,请关注下一篇Filter简介——使用篇!
相关文章推荐
- 奇妙的超滤器(Ultrafilter),公理简介
- Java 理论与实践: 非阻塞算法简介
- Java并发理论简介
- Bloom-Filter算法 简介
- oracle心得1--oracle简介@基本sql语句@条件查询@排序数据理论与案例
- Java_io体系之FilterInputStream/FilterOutputStream简介、走进源码及示例——07
- UrlRewriteFilter 简介
- 【译】光线跟踪:理论与实现(一) 简介
- Android学习之路(五)之 Intent-Filter简介及URI
- Java 理论与实践: 非阻塞算法简介--转载
- Java 理论与实践: 非阻塞算法简介
- Citrix ICA协议简介及与RDP协议对比—-- 理论篇
- 【SVM理论到实践1】SVM支持向量机的简介
- oracle心得1--oracle简介@基本sql语句@条件查询@排序数据理论与案例
- 安卓使用隐式Intent(intent-filter)从其他Activity返回MainActivity时,App停止运行,及使用intent步骤简介
- 机器学习—逻辑回归理论简介
- Oracle学习之路(一):oracle简介+基本sql语句+条件查询+排序数据理论与案例
- 一起谈.NET技术,Microsoft NLayerApp案例理论与实践 - 项目简介与环境搭建
- 等分布理论简介
- JSP Filter简介和工作原理