采用小滤器解决,代码如下:
package org.lxh.mvcdemo.servlet;
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.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;
/**
* 通过过滤器,完成编码过滤
*/
@WebFilter(
urlPatterns = { "/*"}, //"/*"表示对于根目录下的一切操作都需要过滤
initParams = {
@WebInitParam(name = "charset", value = "UTF-8")
})
public class EncondingFilter implements Filter {
private String charSet;//设置字符编号,值在初始化中设置
public void init(FilterConfig fConfig) throws ServletException {
this.charSet = fConfig.getInitParameter("charset");//取得初始化参数
System.out.println("字符编码初始化");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(this.charSet);//设置统一的编码
System.out.println("字符编码统一设置");
chain.doFilter(request, response);//将请求继续传递!!!
}
public void destroy() {
//System.out.println("过滤器销毁!!!");
}
}