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

  • 相关阅读:
    C标准库函数实现
    每天一句话
    移植数码相框到arm开发板上
    数据管理
    perl 分割文件路径和文件名
    恶补英语 拿 The C programming language 练功
    英语学习 chapter1
    uboot 烧写过程
    MVC,去掉字符串中的html代码
    排序之希尔排序
  • 原文地址:https://www.cnblogs.com/huzi007/p/6762535.html
Copyright © 2011-2022 走看看