SpringMVC對HTTP報文體的處理


 客戶端和服務端HTTP報文傳遞消息,而HTTP報文包含報文頭和報文體。通常,解析請求參數以及返回頁面都不需要我們關心HTTP報文體的讀取和生成過程。但在某些特定場景下需要直接到請求報文中讀取報文體,或者將返回的數據直接寫入到報文體中。
 
  在SpringMVC中,可以利用RequestBody注解表示一個參數,說明解析它需要讀取報文體,也可以直接將參數類型聲明成HttpEntity<T>類型。與處理請求類似,如果想要將對象寫入到響應報文的報文體中,則可以返回HttpEntity<T>類型的數據或者在方法上標注ResponseBody。
 
一個例子:
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/tests")
public class TestController {

     @RequestMapping("/handle")
     public HttpEntity<String> handle() {
       HttpHeaders responseHeaders = new HttpHeaders();
       responseHeaders.set("MyResponseHeader", "MyValue");
       return new HttpEntity<String>("Hello World", responseHeaders);
     }
     
}

這個例子最后可以將你的報文頭返回並自定義報文頭,這樣運用的場景就是你需要某些參數傳入header中時,需要這樣的寫法。

 

其他有用的注解:

其他有用的注釋 

  使用 @RequestParam 將 URL 參數插入方法中。 

  使用 @RequestHeader 將某一 HTTP 頭插入方法中。 

  使用 @RequestBody 將 HTTP 請求正文插入方法中。 

  使用 @ResponseBody 將內容或對象作為 HTTP 響應正文返回。 

  使用 HttpEntity<T> 將它自動插入方法中,如果將它作為參數提供。 

  使用 ResponseEntity<T> 返回具有自定義狀態或頭的 HTTP 響應。 

 

這個是官方的文檔:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/HttpEntity.html

 

 


免責聲明!

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



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