request中獲取GET和POST請求參數


URL和參數列表

一 獲取請求方式

request.getMethod(); get和post都可用,

二 獲取請求類型

request.getContentType(); get和post都可用,示例值:application/json ,multipart/form-data, application/xml等

三 獲取所有參數key

request.getParameterNames(); get和post都可用,注:不適用contentType為multipart/form-data

四 獲取參數值value

request.getParameter("test"); get和post都可用,注:不適用contentType為multipart/form-data

五 獲取取參數請求集合

request.getParameterMap(); get和post都可用,注: 不適用contentType為multipart/form-data

六 獲取文本流

request.getInputStream() 適用於如:application/json,xml,multipart/form-data文本流或者大文件形式提交的請求或者xml等形式的報文

七 獲取URL

getRequestURL()

八 獲取參數列表:

1.getQueryString()

只適用於GET,比如客戶端發送http://localhost/testServlet?a=b&c=d&e=f,通過request.getQueryString()得到的是a=b&c=d&e=f.

2.getParameter()

GET和POST都可以使用

但如果是POST請求要根據

表單提交數據的編碼方式來確定能否使用.當編碼方式是(application/x- www-form-urlencoded)時才能使用.

這種編碼方式(application/x-www-form-urlencoded)雖然簡單,但對於傳輸大塊的二進制數據顯得力不從心.

對於傳輸大塊的二進制數這類數據,瀏覽器采用了另一種編碼方式("multipart/form-data"),這時就需要使用下面的兩種方法.

3.getInputStream()

4.getReader()

上面兩種方法獲取的是Http請求包的包體,因為GET方式請求一般不包含包體.所以上面兩種方法一般用於POST請求獲取參數.

需要注意的是:

request.getParameter()、 request.getInputStream()、request.getReader()這三種方法是有沖突的,因為流只能被讀一次。

比如:

當form表單內容采用 enctype=application/x-www-form-urlencoded編碼時,先通過調用request.getParameter()方法得到參數后,

再調用request.getInputStream()或request.getReader()已經得不到流中的內容,

因為在調用 request.getParameter()時系統可能對表單中提交的數據以流的形式讀了一次,反之亦然。

當form表單內容采用 enctype=multipart/form-data編碼時,即使先調用request.getParameter()也得不到數據,

所以這時調用request.getParameter()方法對 request.getInputStream()或request.getReader()沒有沖突,

即使已經調用了 request.getParameter()方法也可以通過調用request.getInputStream()或request.getReader()得到表單中的數據,

而request.getInputStream()和request.getReader()在同一個響應中是不能混合使用的,如果混合使用就會拋異常


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM