gpt4 book ai didi

tomcat - HTTP参数编码

转载 作者:行者123 更新时间:2023-11-28 22:31:44 28 4
gpt4 key购买 nike

最近我一直致力于使用 Tomcat 7.0 服务器创建一些 HTTP 服务。下面的代码是我用来测试我的服务的 html 文件。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form id="fm" method="post" action="http://localhost:8080
/DataService/ProductData?category=Ser + bø&location=Herlev##Vejle">
<input type="submit" value="Submit">
</form>
</body>
</html>

我的问题是关于类别参数“Ser + bø”。在服务器端它被读作“Ser bø”用三个空格代替一个空格,“+”,空格。据我所知,这个问题可能与编码有关。我正在为请求使用 UTF-8。我还更改了 Tomcat 服务器的配置,以便它使用 UTF-8。关于我做错了什么有什么想法吗?

最佳答案

修改您的表单操作 URL 以将参数传递给后端并不是处理表单的正确方法。避免所有这些的最好方法就是使用单独的表单参数:

<form id="fm" method="post" action="http://localhost:8080
/DataService/ProductData?category=Ser %2B bø&location=Herlev##Vejle">
<input type="hidden" name="category" value="Ser %2B bø">
<input type="hidden" name="location" value="Herlev##Vejle">
...
</form>

那是因为URL 有自己的编码规则,基于 RFC 3986。加上 stands for space那里。因此,您应该在将 URL 传递给服务器之前对其进行编码,使用 JSP 或 JavaScript。编码的+%2B:

<form id="fm" method="post" action="http://localhost:8080
/DataService/ProductData?category=Ser %2B bø&location=Herlev##Vejle">

如果它是用户输入,您将必须使用 JavaScript 对其进行编码,如所述 here .

关于tomcat - HTTP参数编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14436612/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com