Filter(过滤器)简介
•
Filter
的基本功能是
对
Servlet
容器调用
Servlet
的过程进行拦截
,
从而在
Servlet
进行响应处理的前后实现一些特殊的功能
。
•
在
Servlet
API
中定义了三个接口类来开供开发人员编写
Filter
程序:
Filter,
FilterChain
,
FilterConfig
•
Filter
程序是一个实现了
Filter
接口的
Java
类
,与
Servlet
程序相似,
它由
Servlet
容器进行调用和执行
•
Filter
程序需要在
web.xml
文件中进行注册和设置它所能拦截的资源
:
Filter
程序可以拦截
Jsp
,
Servlet
,
静态图片文件和
静态 html 文件
•
Filter 的过滤过程
Filter 的基本工作原理
•
当在
web.xml
中注册了一个
Filter
来对某个
Servlet
程序进行拦截处理时,这个
Filter
就成了
Servlet
容器与该
Servlet
程序的通信线路上的一道关卡,
该
Filter
可以对
Servlet
容器发送给
Servlet
程序的请求和
Servlet
程序回送给
Servlet
容器的相应进行拦截,可以决定是否将请求继续传递给
Servlet
程序,
以及对请求和相应信息是否进行修改
•
在一个
web
应用程序中可以注册多个
Filter
程序,每个
Filter
程序都可以对一个或一组
Servlet
程序进行拦截。
•
若有多个
Filter
程序对某个
Servlet
程序的访问过程进行拦截,当针对该
Servlet
的访问请求到达时,
web
容器将把这多个
Filter
程序组合成一个
Filter
链
(
过滤器链
)
。
Filter 链
中各个
Filter
的拦截顺序与它们在应用程序的
web.xml
中
映射
的顺序一致