-------------------JAVA代码------------------
package tools;
import javax.servlet.http.HttpServlet;
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
public class EncodingFilter extends HttpServlet implements Filter
{
private FilterConfig config = null;
private String targetEncoding = "GBK";
public void init(FilterConfig filterConfig)
{
this.config = filterConfig;
this.targetEncoding = config.getInitParameter("encoding");
}
public void destroy()
{
config = null;
targetEncoding = null;
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain filterChain)
{
ServletRequest request = (ServletRequest) servletRequest;
try
{
request.setCharacterEncoding(targetEncoding);
filterChain.doFilter(servletRequest, servletResponse);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
------------web.xml中,将下面代码写在头文件下即可------------
EncodingFilter
db.EncodingFilter
encoding
GBK
EncodingFilter
/*
红色是类的路径,蓝色是编码,注意和jsp页面上的要一致
添加、查询数据都没问题,有没有有效请用过再说
此方法只在sqlserver2000和mysql数据库,tomcat服务器下测试过,请大家注意
------------------------------------------------------------------------------------
第2种方法,URIEncoding="GBK"
将上面的代码放入你改tomcat端口那一段代码的最后(红色部分)
在tomcat的conf文件夹下的server.xml中
maxThreads="800" minSpareThreads="100" maxSpareThreads="500"
enableLookups="false" redirectPort="8443" acceptCount="300"
connectionTimeout="300000" disableUploadTimeout="true" URIEncoding="GBK" />
--------------------------------------------------------------------------------------
第3种方法
public String chStr(String string){
if(string==null){
string="";
}else{
try{
string=(new String(string.getBytes("iso-8859-1"),"GB3212")).trim();
}catch(Exception e){
e.printStackTrace();
}
}
return string;
}
其中iso8859-1是传入的编码,GB2312是转换后的编码,根据实际情况写入