get 和 post处理乱码不一样的哦。
用过滤器,get的话,还需要在tomcat中配置下的
现在将常见的乱码问题分为JSP页面显示中文乱码、表单提交乱码两类。
1)JSP页面中显示中文乱码
在JSP文件中使用page命令指定响应结果的MIME类型,如
2)表单提交乱码
表单提交时(post和Get方法),使用request.getParameter方法得到乱码,这是因为tomcat处理提交的参数时默认的是iso-8859-1,表单提交get和post处理乱码问题不同,下面分别说明。
(1)POST处理
对post提交的表单通过编写一个过滤器的方法来解决,过滤器在用户提交的数据被处理之前被调用,可以在这里改变参数的编码方式,过滤器的代码如下:
Java代码
package
import
import
import
import
import
import
import
public class SetCharacterEncodingFilter implements
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
public void
this.encoding = null;
this.filterConfig = null;
}
public void
"color: #ff0000;"> FilterChain chain) throws
if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null) {
request.setCharacterEncoding(encoding);
}
}
// Pass control on to the next filter
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
"ignore");
if (value == null) {
this.ignore = true;
else if (value.equalsIgnoreCase("true")) {
this.ignore = true;
else if (value.equalsIgnoreCase("yes")) {
this.ignore = true;
else
this.ignore = false;
}
}
protected
return (this.encoding);
}
}
文中红色的代码即为处理乱码的代码。
web.xml文件加入过滤器
Xml代码
Encoding
example.util.SetCharacterEncodingFilter
encoding
gbk
ignore
true
Xml代码
Encoding
/*
(2) Get方法的处理
tomcat对post和get的处理方法不一样,所以过滤器不能解决get的乱码问题,它需要在其他地方设置。
打开
Java代码
URIEncoding="GBK" />
* 注意修改后重新启动tomcat才能起作用。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net