2015-05-18 26 views
3

當文本輸入到包含任何'+'符號的JSP文本字段中時,它將被替換爲空格,當參數值在servlet通過request.getParameter(「abc」)。'+'符號被Servlet的請求參數中的空格替換

我讀了幾個博客,並且知道編碼需要完成才能成功讀取確切的文本,但它並不清楚。有人能幫我解決這個問題嗎?

+0

顯示你的代碼,相關部分.. Servlet應該照顧這個。 –

+0

「+」是「」(空格)的url編碼結果,加號應該是%2B。 –

+0

我知道「+」是「」(空格)的url編碼結果,但如果我實際輸入「+」,該怎麼辦?如何解決這個問題。 – Arunabh

回答

1

+在參數值內是不合法的,因爲它是參數名稱 - 值對之間定義的分隔符。發送前需要參數名稱和參數值都爲URLEncode

+0

而且你還需要_decode_在服務器端的這些參數,以找回你的原文。 –

+0

@TimBiegeleisen不,它是一個JSP,它會自動發生,就像它在任何servlet容器中一樣。 – EJP

0

無法重現。

即使

<form action="rep" method="GET"> 
    <input name="foo" type="text"/> 
</form> 

在servlet在rep(即使是是一個jsp)接收foo=a%2Bb作爲查詢字符串當我在輸入字段中鍵入a+b

我想你是手動生成的查詢,在這種情況下,你必須網址編碼參數。

+0

添加一個鏈接到URL編碼帖子:http://stackoverflow.com/questions/332872/encode-url-in-javascript – Teddy

+0

@Teddy:OP在哪裏說javascript? –

+0

由你的論點,他手動生成它。我認爲它必須與Java腳本。儘管它也可以在scriptlet中生成。 – Teddy