@ResponseBody 和 @RequestBody 注解的區(qū)別

  1. 前言

在詳@ResponseBody和@RequestBody注解之前,我們先了解一下@RequestMapping注解,@RequestMapping是一個用來處理請求地址映射的注解,可用于類或方法上。用于類上,表示類中的所有響應請求的方法都是以該地址作為父路徑;用于方法上,表示在類的父路徑下追加方法上注解中的地址將會訪問到該方法。例如,

其對應的相對請求路徑就是hello/first,訪問該路徑就會跳轉到hello everyone頁面。

2 注解詳述

@Responsebody注解表示該方法的返回的結果直接寫入 HTTP 響應正文中,一般在異步獲取數(shù)據(jù)時使用;在使用@RequestMapping后,返回值通常解析為跳轉路徑,加上@Responsebody后返回結果不會被解析為跳轉路徑,而是直接寫入HTTP 響應正文中。例如,異步獲取json數(shù)據(jù),加上@Responsebody注解后,就會直接返回json數(shù)據(jù),前端直接從json里取得相應的數(shù)據(jù)。(一般前后端分離都用@Responsebody)

@RequestBody注解則是將 HTTP 求正文插入方法中,使用適合的HttpMessageConverter將請求體寫入某個對象。

例如,
@RequestMapping(value = "login")
@ResponseBody // 將請求中的數(shù)據(jù)寫入 Person 對象中,把前端攜帶的信息封裝成后端具體的po,后端通過操作po實現(xiàn)后續(xù)業(yè)務。
public Person login(@RequestBody Person person) {

3 擴展

此外介紹一下經常用到的注解@PathVariable,有時間我們在前端請求路徑中會攜帶著動態(tài)的參數(shù),此時在與后端交互時候,為了標記該參數(shù),則用到@PathVariable。

如上圖:該路徑攜帶了一個動態(tài)參數(shù)attrId,后天的info()方法中有一個attrIds的參數(shù),為了關聯(lián)起前端跟后端的參數(shù),則引入@PathVariable來把attrId與attrIds進行綁定,表示就是同一個參數(shù)。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容