一、首先呢先建一个普通类 ,并且实现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;
/**
* 过滤器类
* @author
*
*/
public class EncodeFilter implements Filter {
private String encode=null;
@Override
public void destroy() {
encode=null;
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if(null==request.getCharacterEncoding()){
request.setCharacterEncoding(encode);
}
chain.doFilter(request, response);
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
String encode=filterConfig.getInitParameter("encode");
if(this.encode==null){
this.encode=encode;//查找配置文件中预设的字符编码
}
}
}
二、要在当前项目的web.xml文件下配置
如下标签、
其中/*表示过滤所有
<filter>
<filter-name>EncodeFilter</filter-name>
<filter-class>org.news.filter.EncodeFilter</filter-class>
<init-param>
<param-name>encode</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>