在jsp和servlet的开发中,今天自己做的一个小例子中出现了中文乱码问题,用了许多方法,发现还是解决不了。最后我用了过滤器,才算终结。
此方法总结如下:在jsp页面中使用 ,这里的pageEncoding是GB2312,那么我们在过滤器web.xml中所使用的GB2312也为GB2312。总之一条:就是上述两者一致即可,比如同为UTF-8
我将过滤器的java代码和web.xml的配置写
//--------------java代码部分:CharsetFilter .java
package com;
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;
public class CharsetFilter implements Filter {
private String charset = "GB2312";
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain arg2) throws IOException, ServletException {
request.setCharacterEncoding(charset);
arg2.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException {
charset = arg0.getInitParameter("charset");
System.out.println("字符过滤器开启,当前状态:"+charset);
}
}
//--------------web.xml部分(以下部分可以直接复制粘贴到WEB.XML下)
CharsetFilter
com.CharsetFilter
charset
GB2312
CharsetFilter
/*
来源:http://blog.csdn.net/lvlingwy