- @ResponseBody:该注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过Response响应给客户端

- @RequestBody:用于获取请求体内容。直接使用得到是key=value&key=value...结构的数据。 get请求方式不适用。

下面为一个简单的演示:

pom.xml

            <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.0.2.RELEASE</version></dependency>        <!--Springmvc默认用MappingJacksonHttpMessageConverter对json数据进行转换,需要加入jackson的包 --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.9.0</version></dependency>

SpringMVC.xml

    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 配置创建spring容器要扫描的包 --><!-- 默认使用基于注释的适配器和映射器 --><mvc:annotation-driven"/><context:component-scan base-package="com.itheima"></context:component-scan><!-- 配置视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/pages/"></property><property name="suffix" value=".jsp"></property></bean><!--在springmvc的配置文件中可以配置,静态资源不过滤: --><!-- location表示路径,mapping表示文件,**表示该目录下的文件以及子目录的文件 --><mvc:resources location="/scripts/" mapping="/scripts/**"/></beans>

UserController.java

        /*** 获取请求参数* 表单发送请求时,请求正文(参数)体现形式是:key=value* 此时springmvc为我们封装了数据,但是我们得到的只有表单提交数据的值。* 只有请求正文是key=value的情况下,springmvc才能实现为我们封装* 而json格式数据,它不是key=value的方式,而是*  {key:value}的方式,所以springmvc不会为我们封装。* @return*/@Controllerpublic class UserController {/*** 接收异步请求* @RequestBody的作用:*      它是获取全部的请求正文内容,包括了请求参数的名称和值**    表单参数是key=value时,它的MIME类型是 application/x-www-form-urlencoded*    当是json格式时,它的MIME类型是application/json**    获取得到的:*      [{"username":"test","age":22},{"username":"test","age":22}]**  jackson开源组件:*      它是借助RequestBody得到的全部请求参数,实现绑定到实体对象中***   @ResponseBody*         作用:它是用于把控制器方法的返回值转成json并响应给浏览器** @return*/@ResponseBody@RequestMapping("testJson")public User testJson(@RequestBody User user){System.out.println(user);return user;}}

testJson.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>Title</title></head><body><!-- 在webapp/scripts目录下导入jquery-3.3.1.min.js --><script type="text/javascript" src="${pageContext.request.contextPath}/scripts/jquery-3.3.1.min.js"></script><script type="text/javascript"> $(function () {$("#testJson").click(function () {$.ajax({type: "post",url: "${pageContext.request.contextPath}/testJson",contentType: "application/json;charset=utf-8",data: '{"username":"zhangsan","password":"123456","age":18}',dataType: "json",success: function (data) {alert(data);alert(data.username);}});});}) </script><!-- 测试异步请求 --><input type="button" value="测试ajax请求json和响应json" id="testJson"/></body></html>

SpringMVC中@ResponseBody和@RequestBody的使用相关推荐

  1. SpringMVC中@ResponseBody的相关注意点

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  2. SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换)

    Spring3.1开始使用新的HandlerMapping 和 HandlerAdapter 来支持@Contoller 和@RequestMapping注解处理:处理器映射RequestMappin ...

  3. SpringMVC中注解@RequestBody和@ResponseBody的使用区别

    首先上源码 在面试时经常会问到我们如何使用SpringMVC将Http请求转换为java对象,或者又是问如何将结果转换为java的呢? SpringMVC在接收到请求之后HandlerMapping像 ...

  4. 在SpringMVC中使用@RequestBody和@ResponseBody注解处理json时,报出HTTP Status 415的解决方案

    在SpringMVC中使用@RequestBody和@ResponseBody注解处理json时,报出HTTP Status 415的解决方案 参考文章: (1)在SpringMVC中使用@Reque ...

  5. 在SpringMVC中使用@RequestBody注解处理json时,报出HTTP Status 415的解决方案

    在SpringMVC中使用@RequestBody注解处理json时,报出HTTP Status 415的解决方案 参考文章: (1)在SpringMVC中使用@RequestBody注解处理json ...

  6. springMvc注解之@ResponseBody和@RequestBody

    简介 springmvc对json的前后台传输做了很好封装,避免了重复编码的过程,下面来看看常用的@ResponseBody和@RequestBody注解 添加依赖 springmvc对json的处理 ...

  7. SpringMVC中通过@ResponseBody返回对象,Js中调用@ResponseBody返回值,统计剩余评论字数的js,@RequestParam默认值,@PathVariable的用法

    1.SpringMVC中通过@ResponseBody返回对象,作为JQuery中的ajax返回值 package com.kuman.cartoon.controller; import java. ...

  8. SpringMVC中使用@ResponseBody注解标注业务方法

    SpringMVC中使用@ResponseBody注解标注业务方法,将业务方法的返回值做成json输出给页面 导包: 除了一些spring的包之外,还需要jackson-annotations.jar ...

  9. 一篇文章教你弄懂SpringMvc中的HttpMessageConverter

    文章目录 一.HttpMessageConverter介绍 二.自定义HttpMessageConverter 写在前面: 我是「境里婆娑」.我还是从前那个少年,没有一丝丝改变,时间只不过是考验,种在 ...

最新文章

  1. Galaxy 生信平台(二):生产环境部署
  2. R语言rev函数对数据对象(向量、dataframe通过行或者列)反序实战
  3. 单例模式及getInstance()的用法
  4. Dilated/Atrous conv 空洞卷积/多孔卷积
  5. python开发wince软件_Wince6.0应用开发:二、模拟器的使用
  6. C#设计模式之4-原型模式
  7. Secure CRT修改文件夹的颜色
  8. 从零开始学前端:HTML的一些文本格式化标签、快捷键、和特殊符号 --- 今天你学习了吗?(CSS:Day02)
  9. ntnub原理怎么看_电锤只转不冲击怎么回事?看懂了工作原理,你也可以动手解决...
  10. ef6 mysql code first_使用EntityFramework6连接MySql数据库(code first方式)
  11. centos7-修改主机名
  12. .net core——打造自己的 dotnet new 微服务解决方案模板
  13. TOGAF9-certification简介
  14. c语言酒店管理系统,基于C#的酒店管理系统(V3.1)最新版
  15. 腾讯云服务器硬盘价格,腾讯云服务器价格表(CPU/内存/带宽/云硬盘收费标准)...
  16. 每日一学18——凉鞋的简易有限状态机
  17. linux用户目录互信,linux 互信不生效
  18. 计算机毕业设计android的消防安全知识宣传app(源码+系统+mysql数据库+Lw文档)
  19. UVALive Problem 7456 Least Crucial Node——Regionals 2015 :: Asia - Taipei
  20. GitHub 标星 2.9w+,我发现了一个宝藏项目,作为编程新手有福了!

热门文章

  1. 定时器Timer和Ticker
  2. Harbor2.2.1配置(trivy扫描器、镜像签名)
  3. 广西中专机器人应用与维护_我校2018级工业机器人应用与维护专业跟岗实习
  4. 树莓派3开wifi热点
  5. [网鼎杯 2020 青龙组]bang
  6. 自我认为挺全面的【Web Service渗透测试总结】
  7. Savior:渗透测试报告自动生成工具
  8. vbs获取cpu使用率
  9. python按正则方式搜索文件
  10. Android判断网络连接是否可用【从新浪云搬运】