首頁 >Java >java教程 >requestbody和requestparam區別

requestbody和requestparam區別

(*-*)浩
(*-*)浩原創
2020-01-09 10:22:129678瀏覽

requestbody和requestparam區別

@RequestParam                                (推薦學習:#cation#) 課程#)#java#-app#)時使用為處理為100p)#java#app#p))#java#app#p)#li#-app#)來處理。 -www-form-urlencoded編碼的內容。 (Http協定中,如果不指定Content-Type,則預設傳遞的參數就是application/x-www-form-urlencoded類型)

##@RequestBody


#處理HttpEntity傳遞過來的數據,一般用來處理非Content-Type: application/x-www-form-urlencoded編碼格式的資料。

•GET請求中,因為沒有HttpEntity,所以@RequestBody並不適用。

•POST請求中,透過HttpEntity傳遞的參數,必須要在請求頭中聲明資料的類型Content-Type,SpringMVC透過使用

HandlerAdapter 配置的HttpMessageConverters來解析HttpEntity中的資料,然後綁定到對應的bean上。

總結

•在GET請求中,不能使用@RequestBody。

•在POST請求,可以使用@RequestBody和@RequestParam,但是如果使用@RequestBody,對於參數轉換的配置必須統一。

舉個例子,在SpringMVC配置了HttpMessageConverters處理棧中,指定json轉化的格式,如Date轉成'yyyy-MM-dd',則參數接收對象包含的字段如果是Date類型,就只能讓客戶端傳遞年月日的格式,不能傳時分秒。 因為不同的接口,它的參數可能對時間參數有不同的格式要求,所以這樣做會讓客戶端調用同事對參數的格式有點困惑,所以說擴展性不高。

如果使用@RequestParam來接受參數,可以在接受參數的model中設定@DateFormat指定所需接受時間參數的格式。

另外,使用@RequestBody接受的參數是不會被Servlet轉換統一放在request物件的Param參數集中,@RequestParam是可以的。

更多Java相關技術文章,請造訪

java教學

欄位學習!

以上是requestbody和requestparam區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn