Servlet(知识点1:过滤器)
什么是过滤器?
Servlet过滤器是可用于 Servlet 编程的 Java 类,可以实现以下目的:
在客户端的请求访问后端资源之前,拦截这些请求;
在服务器的响应发送回客户端之前,处理这些响应;
简而言之,它可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息。
过滤器怎么使用?
可以将一个或多个 Servlet 过滤器附加到一个 Servlet 或一组 Servlet;Servlet 过滤器也可以附加到 JavaServer Pages (JSP) 文件和 HTML 页面。调用 Servlet 前调用所有附加的 Servlet 过滤器。
过滤器的实现步骤(生命周期)
方法 | 说明 |
---|---|
web.xml | 实例化 |
init() | 初始化过滤器 |
doFilter() | 对请求进行过滤处理 |
destroy() | 销毁过滤器,释放资源 |
过滤器的类型:
-
身份验证过滤器(Authentication Filters)。
-
数据压缩过滤器(Data compression Filters)。
-
加密过滤器(Encryption Filters)。
-
触发资源访问事件过滤器。
-
图像转换过滤器(Image Conversion Filters)。
-
日志记录和审核过滤器(Logging and Auditing Filters)。
-
MIME-TYPE 链过滤器(MIME-TYPE Chain Filters)。
-
标记化过滤器(Tokenizing Filters)。
-
XSL/T 过滤器(XSL/T Filters),转换 XML 内容。
如果类实现了Filter接口,则称这个类为过滤器。
Filter接口源码如下:
package javax.servlet;
import java.io.IOException;
public interface Filter {
public void init(FilterConfig filterConfig) throws ServletException;
public void doFilter ( ServletRequest request, ServletResponse response, FilterChain chain ) throws IOException, ServletException;
public void destroy();
}