zoukankan      html  css  js  c++  java
  • @ResponseBody注解

    作用

      @ResponseBody注解表示该方法的返回结果直接写入HTTP response body

    原理

      在使用此注解之后跳过视图处理器,将返回的对象通过适当的转换器转换为指定的格式之后,直接将数据写入到输出流中。

      它的效果等同于通过response对象输出指定格式的数据:response.getWriter().write(jsonArray.toString());

      “通过适当的转换器转换为指定的格式”,即:调用适合HttpMessageConverter的Adapter转换对象

      HttpMessageConverter 接口,需要开启 <mvc:annotation-driven /> ,这个默认配置中,AnnotationMethodHandlerAdapter 将会初始化7个转换器:

        ByteArrayHttpMessageConverter
        StringHttpMessageConverter
        ResourceHttpMessageConverter
        SourceHttpMessageConverter
        XmlAwareFormHttpMessageConverter
        Jaxb2RootElementHttpMessageConverter
        MappingJacksonHttpMessageConverter

    用途

      通常用来返回JSON数据或者是XML数据

      1、一般在异步获取数据时使用
      2、觉得也可以用在提供接口上,实现前后端分离,在其他地方(比如手机的混合APP中)直接调用后端数据,返回json

      @ResponseBody必须要有返回对象,(序列化一个返回对象然后注入解释)可以在配置文件中指定注解的对象,可以是json/html/xml等

    和RequestBody 比较

      Spring 3.X系列增加了新注解 @ResponseBody , @RequestBody
      @RequestBody 将HTTP请求正文转换为适合的HttpMessageConverter对象。
      @ResponseBody 将内容或对象作为 HTTP 响应正文返回,并调用适合HttpMessageConverter的Adapter转换对象,写入输出流。

  • 相关阅读:
    struts2.3.15之文件上传与下载
    hibernate4.2.4之环境搭建与测试实例
    spring4.0.0之环境搭建
    struts2.3.15之表单提交与表单验证
    iptables详解说明
    lvs+keepalived+application部署(只使用两台机器)
    Linux的awk 中的while do-while for循环
    Linux下 expect 使用详解与实例
    Linux shell批量执行scp脚本工具
    Linux服务器TIME_WAIT进程的解决与原因
  • 原文地址:https://www.cnblogs.com/acm-bingzi/p/responseBody.html
Copyright © 2011-2022 走看看