POST方法替换'+'字符

时间:2012-04-22 18:40:09

标签: java jsp servlets post

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

4 个答案:

答案 0 :(得分:3)

表单变量以URL编码方式发送。 “+”加字符是(一)空格的URL编码。

另见: AJAX POST and Plus Sign ( + ) -- How to Encode?

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

servlet显然希望数据以URL编码方式到达,如W3 document on HTTP form submission中所述。您需要更改POST的内容类型或(更好地)对要发送的数据进行编码。您可以将“+”符号编码为“%2B”。

答案 3 :(得分:1)

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

4+5

变为

4%2B5