tomcat 7 Request请求参数中文乱码问题
2023-09-11 14:22:57 时间
前言
Tomcat 7 默认是按ISO-8859-1进行URL解码,ISO-8859-1并未包括中文字符,中文字符不能被正确解析,虽然在Tomcat8已经解决了这个问题,把默认解码格式设置成了utf-8,但是由于maven中目前最高只支持tomcat 7,所以这里说一下一个get和post都通用的方式
我们先来写一个serclet
@WebServlet("/Servlet5")
public class Servlet5 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
System.out.println(name);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
再写一个HTML传一个name过来
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="Servlet5" method="get">
<input name="name"><input type="submit">
</form>
</body>
</html>
运行,在框里输入中文点提交
控制台打印了中文乱码
打开刚刚创建的Servlet,在获取name之后插入下面这行代码
name = new String(name.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
再来打印一次,已经可以正常输出了
把HTML的method改成post,再提交一次,控制台打印还是正常中文字符。
相关文章
- Linux下部署tomcat
- 配置发布tomcat服务
- tomcat启动时检测到循环继承而栈溢出的问题
- docker 容器内系统时区tomcat时区修改
- window启动tomcat的console窗口中文乱码问题
- 限制tomcat仅响应本机请求(转)
- TOMCAT:使用tomcat发布项目如何查看项目的错误日志
- docker部署Tomcat时指定时区
- docker 安装tomcat遇到问题
- SpringBoot 启动参数设置环境变量、JVM参数、tomcat远程调试
- javaweb项目配置tomcat启动
- Tomcat与Solr4.10整合
- java.lang.UnsatisfiedLinkError: C:apache-tomcat-8.0.21bintcnative-1.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
- MyEclipse配置Tomcat没有Tomcat选项没有小猫图
- Tomcat(四):tomcat图形管理和身份认证
- Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包
- Tomcat v7.0 Server at localhost are already in use,tomcat提示端口被占用,tomcat端口已经被使用,tomcat端口占用
- Tomcat 6 —— Realm域管理
- tomcat配置多个host
- docker容器下tomcat 不向catalina.out输出日志解决以及支持中文字符集
- idea tomcat 控制台中文乱码 读取数据库乱码
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- 使用Maven自动部署Java Web项目到Tomcat问题小记
- Tomcat_修改代码后tomcat是否需要重启
- tomcat 设置jdk环境变量
- spring boot不要放在tomcat下启动,因为自身就带了集成tomcat
- Nginx+Tomcat搭建高性能负载均衡集群