目录
1.post请求乱码
问题:前端提交的请求体是中文,后端用request接收信息,将信息输出到控制台时出现乱码
解决办法:设置请求体的字符集
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");//解决办法
//获取用户提交的用户名
String username=request.getParameter("username");
System.out.println(username);
}
- get在请求行中提交数据
- post在请求体中提交数据
注意:Tomcat10以后默认使用UTF-8
2.get请求乱码
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String realname=request.getParameter("realname");
System.out.println(realname);
}
修改Tomcat中的CATALINA_HOME/conf/server.xml配置文件
<Connector URIEncoding="UTF-8" />
注意:Tomcat8以后默认使用UTF-8
3.后端响应时乱码
问题:前端提交信息后,后端响应,响应有中文时乱码
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html);
PrintWriter out = response.getWriter();
out.print("你好,我是XXX");
}
解决办法:
response.setContentType("text/html;charset=UTF-8");
注意:Tomcat10以后默认使用UTF-8
上面三种错误,总的来说,用Tomcat10都能解决
4.JSP中的page指令乱码
解决方法:
通过page指令来设置响应的内容类型,在内容类型的最后面添加:charset=UTF-8
<%@page contentType="text/html;charset=UTF-8"%>
表示响应的内容类型是text/html,采用的字符集UTF-8