package com.mage.hsr;
import java.io.IOException;
import javax.servlet.ServletException;
/*
* 请求乱码解决:根据提交方式分为get和post两种解决方案
* 乱码原因,客户端与服务端字符集不统一
* 使用document.charset可得到浏览器的字符集
* get: 参数在请求行中,服务端默认使用ISO-8859-1字符集
* 1,在Tomcat8及以上版本中中文可能不会乱码
* 2,在Tomcat7及以下版本中,中文可能乱码
* 解决方法:new String(uname.getBytes("ISO-8859-1"),"UTF-8")
*
* post:参数在请求体中,使用页面编码
* 1,在Tomcat8及以上版本中中文乱码
* 2,在Tomcat7及以下版本中中文乱码
* 解决方法:设置服务器默认解码字符集
* req.setCharacterEncoding("UTF-8")
* 此方法针对请求体有效,故无法对get使用,代码放在request对象之前
* */
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Test012 extends HttpServlet{
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// //测试get
// String uname = req.getParameter("uname");
// System.out.println("uname:"+uname);
// //结果为uname:张三,原因是使用的是Tomcat8.5的版本,所有正常显示中文
//测试post
// String uname = req.getParameter("uname");
// System.out.println("uname:"+uname);
// //结果为:uname:å¼ ä¸
//设置服务器默认字符集
req.setCharacterEncoding("UTF-8");
String uname = req.getParameter("uname");
System.out.println("uname:"+uname);
//结果为:uname:张三,正常显示中文
}
}
Request请求乱码解决
最新推荐文章于 2024-07-12 16:58:11 发布