2015-02-10 43 views
0

我使用彈簧安全和Spring MVC 我想get方法[email protected]發送tomcat的雙解碼URL

1.當我在瀏覽器中鍵入本地主機:8080/myServlerturl /登錄? 。user=1%[email protected] 我得到的/登錄 request.getParameterMap()獲取( 「用戶」)是1 + 1

2.當我打字在瀏覽器本地主機:8080 /我的登入/登入 request.getParameterMap()。get(「user」)is 1 1

我從此推斷出,tomcat做雙重encdoing的含義 瀏覽器將1 + 1改爲1%2B1(瀏覽器始終解碼url)tomcat將其更改爲1 1表示雙重編碼。

我在第一過濾器見我有參數作爲1個1 INSEAD把它看作1 + 1

(URL編碼)(被Tomcat 2 X解碼)=解碼X 1太多

回答

-1

我有問題 在我wireshark檢查後,我在系統中的另一個地方有問題,我解決了我的問題。

1

無論如何,網址中的某些字符必須是percent encoded。這就是HTTP的工作原理。

你的第2個情況沒有多大意義。如果生成了這樣的URL(沒有百分號編碼+符號),則它生成不正確,必須修復。