java中用过滤器解决字符编码问题
java的web
程序经常出现中文乱码的
问题,用一个实现了Filter接口的过滤器类可以较好地解决这个问题。
1、新增过滤器类EncodingFilter
package 包名;//可以新建一个包放filter,新建class
import java.io.IOException; import javax.servlet.*;
public class EncodingFilter implements Filter { private FilterConfig filterConfig = null; private String encoding = null; public void destroy() {
filterConfig = null; encoding = null; }
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException {
if (request.getCharacterEncoding() == null) { if (encoding != null) {
request.setCharacterEncoding(encoding); }
filterChain.doFilter(request, response); } }
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding"); } }
2、
web.
xml中加入
EncodingFilter
包名.EncodingFilter
encoding UTF-8
EncodingFilter /* 3、 jsp页面中设置pageEncoding="UTF-8" ,表单提交方法method="post"、