|
学习strutsjspstrutsjavajavajavaServletservletJavaSErvletservletjavaservletservletstrutsservletservletservletservletservletservletjspjspstrutshibernateservletstrutsservletservletservletservletservlettomcat1strutshibernatejsp以来,一直被乱码题目困扰,以至于一度间断学习,最近,因为工作需要,又重新开始学习。原来一直认为乱码是Mysql(我用的数据库是Mysql 5.0)造成的,由于中文写进数据库后泛起乱码,用各种方法设置Mysql都没用,最近调试程序时发现,从页面的中文传给Action的存入数据库泛起乱码,而直接在Action中赋值中文传给数据库却正常显示中文,才发现,乱码的根源在。
在网上“百度”了一下,解决方案五花八门,找个简朴的试了一下,居然OK。
解决办法只需两个步骤:
一、将下面的程序拷贝到项目中
package tax_common;
import .io.IOException;
import x..Exception;
import x..http.HttpRequest;
import x..http.HttpResponse;
import org.apache..action.Action;
public class Code extends Action {
private static final long serialVersionUID = 1L;
@Override
protected void process(HttpRequest request,
HttpResponse response) throws IOException, Exception {
request.setCharacterEncoding("UTF-8"); //若页面以及web.xm等采用采用GB2312,则将值改为“GB2312”
super.process(request, response);
}
}
注:页面、web.xml、-config.xml、-cfg.xml等文件的字符编码设置要同一,假如是GB23128编码,则需将上面代码的UTF-8(红字部门)改为GB2312即可。
二、修改 web.xml文件
将<-class>org.apache..action.Action</-class>修改为:
<-class>tax_common.Code</-class>即可。
注1:我的开发环境为:Eclipse+5.5+.2+3.1+Mysql5.0
注2:页面提交表单的方法是“post”,用“get”方式灵不灵,没试过。 |
|