2016-01-04 103 views
0

我有一個需要訪問請求對象的類。java - request.getParameter自動將編碼的HTML轉換爲其等效的ASCII字符

它有這樣的代碼:

String param = request.getParameter("param"); 

它工作正常的就好說了,正常paramxyzabc

但當param包含escapedHTML,"然後在要求它們傳遞因爲它(我在eclipse中使用debug進行檢查),但是當我嘗試從請求對象中獲取這些參數時,它們將被轉換回它們等效的ASCII字符表示形式。

所以說如果param包含Banana,Apple它將被獲得爲Banana,Apple等等。

Request: /myserv.serv?param=Banana,Apple

所以我的問題是:如何從請求獲取原始值?以及如何停止此自動轉換?

在此先感謝。

+1

嘗試使用'request.getQueryString()'並且用'&'和'='拆分以獲得原始查詢參數 – Braj

+1

,以便在定義參數值時避免與符號相關。應用程序服務器如何知道「&」實際上是值的一部分,而不是劃分下一組名稱/值對的標記。 –

+0

這通常發生在jsp中的編碼與服務器平臺的默認編碼(字符集)不同時。您可以在調用任何request.getParameter方法之前嘗試調用ServletRequest.setCharacterEncoding –

回答

0

HTTP請求行使用百分比編碼。使用URLDecoder是錯誤的,因爲它應該用於application/x-www-form-urlencoded。是的,這個名字是誤導性的,但事實就是這樣。

圍棋的答案@Braj在評論中建議:

嘗試request.getQueryString()和分裂的&=來獲得原始查詢參數。

+0

不能使用'request.getQueryString()'。因爲請求是POST,所以'POST'請求​​返回'null'。 –

相關問題