您的位置:首页 > 其它

Servlet中文乱码问题解决方案(Tomact 6.0.14)

2009-07-03 15:51 495 查看
在Tomact 6.0.14中测试Servlet中文乱码问题解决方案如下:

如果form的提交方式为:post,只需在Servlet中加入这一行:request.setCharacterEncoding("GBK");。注意:

1.一定要写在存取第一个参数之前

2.不要调用response.setCharacterEncoding(charset);

如果form的提交方式为get,则需要修改Tomact中confg目录下的server.xml文件

将<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"

redirectPort="8443" /> 修改成为

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"

redirectPort="8443" URIEncoding="GBK"/>

见例子:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType("text/html;charset=GBK");

//解决post方式提交内容的乱码

//一定要写在存取第一个参数之前

//不要调用response.setCharacterEncoding(charset);

request.setCharacterEncoding("GBK");

//解决get方式乱码问题:修改server.xml-->URIEncoding="GBK"

PrintWriter out = response.getWriter();

out.println(request.getParameter("param1"));

out.println("<br>");

out.println(request.getParameter("param2"));

out.println("<br>");

out.println(request.getParameter("param3"));

out.println("<br>");

System.out.println("in doGet");

}

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("in doPost");

doGet(request, response);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: