我已經通過URLEncoder和URLDecoder的javadocs。然後變得更好奇。將服務器視爲tomcat。在任何web應用程序中,每當我們提交 表單時,服務器都會將表單字段轉換爲urlencoded字段,以及何時request.getParamter(「fieldName」)。服務器再次使用URLDecoder對其進行解碼。 這是正確的嗎?服務器執行它還是瀏覽器?當我們在地址欄中輸入任何網址時會出現同樣的東西? 如果服務器或瀏覽器在我們需要在URLEncoder和URLDecoder的幫助下顯式地編碼或解碼請求參數,那麼 ?雖然這些都是基本問題,但無法清楚地找到這些問題。關於URLEncoder和URLDecoder的一些問題?
回答
在當我們提交表單的任何web應用,服務器表格字段轉換成url編碼領域,當我們做request.getParamter(「字段名」)。
不是。瀏覽器會這樣做。
服務器再次使用URLDecoder對其進行解碼。那是對的嗎?
是的。
服務器執行它還是瀏覽器?
瀏覽器。
如果服務器或瀏覽器確實,當我們需要進行編碼或類URLEncoder和URLDecoder的幫助下明確解碼請求參數 ?
我不知道這意味着什麼,但它仍然是瀏覽器。如果您從應用程序代碼發送請求,則只需要對請求參數進行編碼。如果你在一個servlet容器中運行,你根本不需要解碼它們:它會爲你做到這一點。
儘管瀏覽器在將URL傳遞給Web服務器之前確實對其進行了編碼,但瀏覽器可能始終沒有涉足。
例如您的服務器應用程序可能正在進行基於REST的調用,並通過簡單的GET請求傳遞一些數據。然後,如果您不將它編碼到您的服務器上,接收器解碼時可能會出現亂碼。
因此,強烈建議在將URL發送到服務器代碼之前始終對URL進行編碼。
嗨anubhava看起來像我們在瀏覽器中輸入url的答案,瀏覽器在默認情況下執行編碼。在我的代碼中,我看到了當我從servlet執行response.redirect時,它沒有編碼請求參數。但是,如果瀏覽器默認編碼不應該response.redirect也做編碼,因爲重定向請求被視爲從瀏覽器觸發的情況下處理? –
正如您已經評論了response.encodeRedirectURL(),它提供了用於編碼指定的URL以用於sendRedirect方法的目的,或者如果不需要編碼,則返回URL不變。 – anubhava
另一件事anubhava,在http://docs.oracle.com/javase/1.4.2/docs/api/java/net/URLEncoder.html,一點說,所有其他字符是不安全的,並首先轉換成一個或使用某種編碼方案的更多字節,爲什麼所有其他字符都被認爲是不安全的。是否因爲黑客可以對這些角色進行一些操作,比如他們可以在空間角色中嵌入一些任意的東西。對? –
- 1. 關於pthread_mutex_lock和pthread_mutex_unlock的一些問題
- 2. 關於關注WPF的一些問題
- 3. 的Android的Java URLDecoder問題
- 4. 關於Perceptron的一些問題
- 5. 關於使用resque的一些問題
- 6. 關於MST的一些問題
- 7. 關於Flurry的一些問題
- 8. 關於dealloc方法的一些問題
- 9. 關於'delayed_job'的一些基本問題
- 10. 關於Java AbstractProcessor的一些問題?
- 11. 關於dma_alloc_coherent的一些問題
- 12. 關於Elmah的一些問題
- 13. 關於一些unix代碼的問題?
- 14. 關於智能卡的一些問題
- 15. 關於sipp的一些問題
- 16. 關於innerHTML的一些問題
- 17. 關於Mulesoft的一些概念問題
- 18. 關於PHPExcel圖表的一些問題
- 19. 關於MFC開發的一些問題?
- 20. 關於RIA服務的一些問題
- 21. 關於C語法的一些問題
- 22. 關於perl程序的一些問題
- 23. 關於c的一些問題#
- 24. 關於Extjs 4.0.7的一些問題
- 25. 關於KeyEvent的一些問題
- 26. 關於FASM的一些問題
- 27. 關於Asp.net MVC的一些問題
- 28. 關於Windows DLL的一些問題?
- 29. 關於OpenId的一些問題
- 30. 關於C++的一些問題try catch
當你回答說,我們在瀏覽器中鍵入URL,瀏覽器在默認情況下不編碼。在我的代碼中,我看到了當我從servlet執行response.redirect時,它沒有編碼請求參數。但是,如果瀏覽器默認編碼不應該response.redirect也做編碼,因爲重定向請求被視爲從瀏覽器觸發的情況下處理? –
看起來Response.Redirect的,因爲我們有響應即response.encodeRedirectURL獨立方法不編碼請求PARAM –