3

嘿。我正在使用 POST 方法将一些信息从 JSP 发送到 Servlet。我不明白为什么当我通过 POST 方法发送一个“+”字符时,它将被替换为一个空格字符。示例:当我键入以下字符串时:4+5 -> Servlet 将返回 4 5; 它取代了所有的“+”号。我该如何解决这个问题?我真的需要“+”字符可见,因为之后我需要评估表达式。

4

4 回答 4

3

表单变量通过 URL 编码发送。“+”加号是(一个)空格的 URL 编码。

另请参阅: AJAX POST 和加号 (+) -- 如何编码?

如果要发送文字加号,则需要通过 Javascript 或硬编码的“%2B”对其进行 URL 编码。

于 2012-04-22T18:46:13.567 回答
1

URLEncode在将数据发送到服务器之前,您需要先处理数据。服务器正在尝试解码未编码的数据——结果是+解码为空格。

于 2012-04-22T18:46:24.017 回答
1

servlet 显然期望数据以 URL 编码形式到达,如W3 文档中关于 HTTP 表单提交的描述。您需要更改 POST 的内容类型或(更好地)对您发送的数据进行编码。您可以将“+”符号编码为“%2B”。

于 2012-04-22T18:46:31.913 回答
1

在对 URL 进行编码时,该+字符表示一个空格。如果您需要在 URL 中使用此字符,则必须像这样对其进行转义:

4+5

变成

4%2B5
于 2012-04-22T18:47:14.993 回答