java web开发乱码问题总结

第一种解决方案
在页面设置编号pageEncoding="GB18030"
第二种解决方式
response.setContentType("text/html;charset=GBK");
  request.setCharacterEncoding("GBK");
String name=new String(request.getParameter("username").getBytes(),"GBK");
第三种解决方式
编写字符编码过滤器
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 Encoding implements Filter {
   @SuppressWarnings("unused")
   private FilterConfig config=null;
   String encoding=null;
public void destroy() {
  this.encoding=null;
  this.config=null;
}
public void doFilter(ServletRequest request, ServletResponse response,
   FilterChain chain) throws IOException, ServletException {
     if(encoding!=null)
      request.setCharacterEncoding(encoding);
     chain.doFilter(request, response);
     
}
public void init(FilterConfig arg0) throws ServletException {
  this.config=arg0;
  this.encoding=arg0.getInitParameter("encoding");
}
}
第四种如果前几种没有解决的话
如果用的是tomcat的话就在tomcat目录下的conf文件夹中的server.xml中的<Connector port="7000" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
      URIEncoding="GBK"/>
添加 URIEncoding="GBK"

你可能感兴趣的:(java,tomcat,xml,Web,servlet)