创建一个编码过滤器类继承Filter类
package com.it.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;
import java.io.IOException;
//过滤器注解 "/*"过滤所有请求
@WebFilter(filterName = "EncodingFilter", urlPatterns = "/*", initParams = {@WebInitParam(name = "encode", value = "utf-8")})
public class EncodingFilter implements Filter {
protected String encode = null;
//FilterConfig对象
protected FilterConfig filterConfig = null;
//初始化方法
@Override
public void init(FilterConfig filterConfig) throws ServletException {
//对filterConfig赋值
this.filterConfig = filterConfig;
//对初始化参数赋值
this.encode = filterConfig.getInitParameter("encode");
}
//过滤处理方法
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
//判断字符码是否有效
if (encode != null) {
req.setCharacterEncoding(encode);
//设置response字符编码
res.setContentType("text/html;charset=" + encode);
}
//传递给下一个过滤器
chain.doFilter(req, res);
}
//销毁方法
@Override
public void destroy() {
//释放资源
this.encode = null;
this.filterConfig = null;
}
}