不加requestbody requestbody和requestparam區(qū)別?
requestbody和requestparam區(qū)別?Requestbody處理httpentity傳遞的數(shù)據(jù),通常用于處理非內(nèi)容類型的數(shù)據(jù):application/x-www-form-urlenc
requestbody和requestparam區(qū)別?
Requestbody
處理httpentity傳遞的數(shù)據(jù),通常用于處理非內(nèi)容類型的數(shù)據(jù):application/x-www-form-urlencoded格式。
在get請求中,@requestbody不適用,因為沒有httpentity。
在post請求中,通過httpentity傳遞的參數(shù)必須在請求頭中聲明數(shù)據(jù)類型content type。Spring MVC使用由
handleradapter配置的httpmessage轉(zhuǎn)換器解析httpentity中的數(shù)據(jù),然后將其綁定到相應的bean。
Requestparam
@responsebody一般在什么情況下使用,他的好處與壞處?
@ResponseBody表示方法的返回結(jié)果直接寫入HTTP響應體。其用法如下:
1。它通常在異步獲取數(shù)據(jù)時使用。在使用@requestmapping之后,返回值通常被解析為跳轉(zhuǎn)路徑。添加@ResponseBody之后,返回結(jié)果將不會被解析為跳轉(zhuǎn)路徑,而是直接寫入HTTP響應主體。例如,異步獲取JSON數(shù)據(jù)并添加@ResponseBody后,JSON數(shù)據(jù)將直接返回。
2. 通常,它是指定響應的類型。例如,JSON或XML可以直接使用Jackson或JAXB的包,然后自動返回。不需要配置XML來使用它。優(yōu)點是:在get模式下,這里使用@pathvariable綁定輸入?yún)?shù),這非常適合restful樣式。由于參數(shù)和路徑之間的關系是隱藏的,因此可以提高網(wǎng)站的安全性,頁面可以是靜態(tài)的,降低惡意攻擊的風險。在post模式下,使用@requestbody綁定請求對象。Spring將幫助您轉(zhuǎn)換協(xié)議,并將JSON和XML協(xié)議轉(zhuǎn)換為您需要的對象。@ResponseBody可以標記任何對象,srping完成對象協(xié)議轉(zhuǎn)換。缺點是:返回前,如果前端編碼格式不一致,很容易造成代碼亂碼。