zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【BZOJ1046】[HAOI2007]上升序列
    【BZOJ1045】[HAOI2008]糖果传递
    【BZOJ1044】[HAOI2008]木棍分割
    【BZOJ1041】[HAOI2008]圆上的整点
    【LG2257】YY的GCD
    【BZOJ1018】[SHOI2008]堵塞的交通
    【LG4735】最大异或和
    【POJ2182】Lost Cows
    【POJ2482】Stars in Your Window
    【POJ1733】Parity game
  • 原文地址:https://www.cnblogs.com/huzi007/p/6762535.html
Copyright © 2011-2022 走看看