我在我的主頁中有一個iframe和一個文本框(用於輸入所需的url),因此當用戶輸入所需的URL時,我會將請求的頁面加載到iframe。 我正在使用HttpServlet
來處理通過doGet
獲取請求。我需要區分請求的內容類型,因爲如果它是一個文件(img或腳本),我只是閱讀它並返回,但如果它是一個html頁面,我會做一些修改。 我試圖在doGet
內使用request.getContentType()
,但它返回null
。那麼有沒有辦法做到這一點?謝謝確定doGet中請求內容的類型
1
A
回答
3
HttpServletRequest#getContentType()
返回Content-Type
標題的值(如果有的話)。
您需要在發送請求時指定它。你可以使用Javascript來做到這一點。
或者,但不是理想情況下,您可以使用查詢字符串參數來提示內容類型。
這對獲取請求主體的內容類型。
如果你需要指定哪些內容的響應應該有,則需要用適當的介質類型指定Accept
頭。
您也可以選擇進行URL擴展匹配。例如,www.host.com/some/path.xml
將返回XML。
0
你想知道請求的內容類型嗎,mabye你不知道你的請求是什麼請檢查你的URL。如果您的請求不包含任何數據,您可以返回空值request.getContentType
。你可以在沒有請求的情況下做出迴應。馬布耶你可以通過參數確定你想要什麼樣的反應。我認爲你必須檢查響應類型來確定應用程序的行爲取決於響應類型而不是請求。簡單的GET請求只能等待響應。並根據這種反應做一些行動。
1
如果您的請求正文包含數據,request.getContentType()
方法將只返回一個值。由於它是一個GET,它不包含任何主體。如果您有任何數據,它可能是URL的一部分,也可能是連接到URL的查詢字符串。在GET請求中聲明Content-type
毫無意義,因此沒有要讀取的標頭。
您必須在您的請求URL中查找所需的數據。
如果它是由鏈接或圖像生成的URL,則從URL獲取名稱和擴展名。它是由腳本生成的,它可能在其他地方有該信息,如查詢字符串中的某個變量(例如?file-name=xyz&file-type=png
)或附加路徑信息(例如/servlet/xyz/jpeg
)。這取決於您的客戶如何請求數據。
相關問題
- 1. 確定請求的內容類型?
- 2. 在CURL請求中設置請求類型和內容類型
- 3. HttpServletRequest:如何確定所請求資產的內容類型
- 4. ASP.NET,確定請求內容類型是否爲JSON
- 5. 內容類型的請求標頭
- 6. POST請求的內容類型標頭
- 7. 如何在groovy中指定請求中的內容類型?
- 8. Kohana請求集內容類型
- 9. 設置HTTP請求「內容類型」
- 10. 驗證請求內容類型
- 11. Android Volley請求內容類型
- 12. Ruby HTTP發佈請求 - 內容類型?
- 13. 確定HTTP請求的數據類型
- 14. 請求內容類型和emty請求主體
- 15. 使用restito的自定義內容類型模擬REST請求
- 16. 具有特定內容類型的REST請求
- 17. 確定頁面內容的類型
- 18. jquery - ajax請求指定內容類型爲html
- 19. JavaScript在一個請求中處理不同的內容類型
- 20. 設置獲取請求中的內容類型不起作用
- 21. 如何檢查ASP.Net Web API中的請求內容類型?
- 22. 錯誤處理和內容類型中的file_get_contents與GET請求
- 23. 規範vs內容談判中的請求類型
- 24. 肥皂web服務中多部分請求的內容類型
- 25. 在同一請求中發送多種類型的內容
- 26. 如何確定在母版頁中請求的內容頁面
- 27. PlayFramework 2.2.x:檢測請求的接受內容類型的正確方法
- 28. 在請求中設置AJAX內容類型頭IE
- 29. 我們如何在Spring 3.0.2中設置請求內容類型?
- 30. HTTP POST請求使用JSON內容類型中鏢:IO
當第一個請求發送(www.example.com),我修改的所有URL(HREF,SRC,..),所以當GET是發送下載資源我的servlet將被觸發。在doGet內部,我需要知道請求資源的類型。所以最好的方法是解析doGet中的URL? – akmal
@akmal你想得到請求體的內容,對吧?最好的方法是發送Content-Type頭。 –
@akmal不要在GET請求的主體中發送內容。 –