一,servlet的过滤器有两种目的:
1,拦截客户端请求
2,处理发送客户端的响应
二,各种类型的过滤器
1,身份验证过滤器(Authentication Filters)。
2,数据压缩过滤器(Data compression Filters)。
3,加密过滤器(Encryption Filters)。
4,触发资源访问事件过滤器。
5,图像转换过滤器(Image Conversion Filters)。
6,日志记录和审核过滤器(Logging and Auditing Filters)。
7,MIME-TYPE 链过滤器(MIME-TYPE Chain Filters)。
8,标记化过滤器(Tokenizing Filters)。
9,XSL/T 过滤器(XSL/T Filters),转换 XML 内容。
三,下面写一个处理中文乱码的过滤器
package com.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class ServlterFilter implements Filter{
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request=(HttpServletRequest) req;
HttpServletResponse response=(HttpServletResponse) resp;
HttpSession session=request.getSession();
//获取请求的uri
String uri=request.getRequestURI();
String ctx=request.getContextPath();
uri=uri.substring(ctx.length());
int count=uri.lastIndexOf("/");
try {
//对请求进行编码转换
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html");
} catch (Exception e) {
}
chain.doFilter(req, resp);
}
@Override
public void init(FilterConfig arg0) throws ServletException {
}
}
2,配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>servlet_05_filter</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!-- 主要在这里配置 -->
<filter>
<filter-name>utf8</filter-name>
<filter-class>com.filter.ServlterFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>utf8</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>