@ResponseBody注解的具体作用和用法

一.@ResponseBody的作用
其实是将java对象转为json格式的数据。
@ResponseBody作用在方法上,@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】。

接下来看看下面的代码:
第一步:先编写一个jsp的页面,来调用后台。在这里插入代码片
在这里插入图片描述
第二步:
在后台的生成一个java对象,用于返回给页面。
在这里插入图片描述
第三步:这前端页面来调用这个接口,然后我们将一个User对象返回给它,到前台后自动转为json格式的数据,如下图:
在这里插入图片描述
在这里插入图片描述
可以看到我们传递是一个User,但是经过@ResponseBody的作用后直接转成了json格式,给了我们很大的便利,如果没有这个转化的话,我们前台得到的是Object对象。

二.具体用法

后台 Controller类中对应的方法:

@RequestMapping("/login.do")
@ResponseBody
public Object login(String name, String password, HttpSession session) {
	user = userService.checkLogin(name, password);
	session.setAttribute("user", user);
	return new JsonResult(user);
}

@RequestBody是作用在形参列表上,用于将前台发送过来固定格式的数据【xml格式 或者 json等】封装为对应的 JavaBean 对象,
封装时使用到的一个对象是系统默认配置的 HttpMessageConverter进行解析,然后封装到形参上。
如上面的登录后台代码可以改为:

@RequestMapping("/login.do")
@ResponseBody
public Object login(@RequestBody User loginUuser, HttpSession session) {
	user = userService.checkLogin(loginUser);
	session.setAttribute("user", user);
	return new JsonResult(user);

@RequestBody 注解则是将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。
作用:

  1. 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定
    到要返回的对象上;
  2. 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。

A) GET、POST方式提时, 根据request header Content-Type的值来判断:

application/x-www-form-urlencoded, 
可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute

也可以处理,当然@RequestBody也能处理);
multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据);
其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);

B) PUT方式提交时, 根据request header Content-Type的值来判断:

application/x-www-form-urlencoded, 必须;multipart/form-data, 不能处理;其他格式, 必须;
说明:request的body部分的数据编码格式由header部分的Content-Type指定;
举例说明:

@RequestMapping(value = "user/login")
@ResponseBody
// 将ajax(datas)发出的请求写入 User 对象中
public User login(@RequestBody User user) {   
// 这样就不会再被解析为跳转路径,而是直接将user对象写入 HTTP 响应正文中
    return user;    
}
一只小小码农
关注 关注
  • 19
    点赞
  • 136
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
@ResponseBody注解的使用
xzy的博客
05-04 1688
@RequestBody注解的使用 在SpringBoot的控制器的方法中,如果return一个字符串,那么程序默认会跳转到这个字符串所表示的页面,而@RequestBody注解作用就是阻止这个功能的,这个注解可以让return的字符串直接返回到页面中或者直接返回到ajax的执行成功方法中。 @RequestBody注解的使用过程,如下图: 前端异步请求后端方法,如下图: 后端接收前端的异步请求,并return返回处理请求的结果参数,如下图: ...
SpringMVC Controller 层没有使用 @ResponseBody 注解引发的血案(api访问404)
weixin_42118323的博客
04-21 529
很明显两次请求的路径不一样,第一次请求的路径是我们正常的路径:”/api/test-controller“,第二次请求的路径正是:“/api/成功”,很明显问题就出在第二请求路径上,代码中不存在这个请求路径,肯定要报错:404,为什么会有第二次请求呢?欢迎提出建议及对错误的地方指出纠正。
@ResponseBody 注解原理
weixin_45359574的博客
05-24 3049
@ResponseBody 注解原理1. 介绍2. 作用范围3. 源码分析4. 总结 注:SpringMVC 版本 5.2.15 1. 介绍 @ResponseBody 注解作用是将方法的返回值通过适当的转换器转换为指定的格式之后,写入到 response 对象的 body 区,通常用来返回 JSON、XML 数据。 使用了 @ResponseBody 注解标记的方法不再做视图解析 2. 作用范围 标记在方法上 标记在类上 通过 @RestController 注解实现,此时所有的方法都将会被添
接口基础知识9:详解response body(响应体)
最新发布
土小帽_Tester的博客
08-16 1424
HTTP响应体(HTTP Response Body),服务器返回给客户端的数据部分,‌格式与请求头相同。
Idea download sources Connection Refused to host 127.0.0.1 error
lzf的博客
07-04 5227
UPD(来自@Andrey):这可能已在 2021.1.3 版中修复 对于旧版本: 这可以通过在项目的 Maven 导入程序设置中选择合适的 JDK 来解决。 在项目设置中,转到 Build Tools -> Maven -> Importing 将 JDK for importer 设置为您操作系统上安装的 JDK(不是内置的) 再次尝试下载源代码 - 现在应该可以工作了。 ...
@ResponseBody详解
热门推荐
originations的博客
04-24 46万+
@ResponseBody作用其实是将java对象转为json格式的数据。 @responseBody注解作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。 注意:在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式...
@responseBody注解的使用
weixin_43267963的博客
11-08 560
@responseBody注解的使用 1、 @responseBody注解作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML 数据,需要注意的呢,在使用此注解之后不会再走试图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。 2、 @Reque...
@ResponseBody注解作用
Evan's Blog ٩(๑❛ᴗ❛๑)۶
11-20 4万+
1、   @ResponseBody注解作用是将controller的方法返回的对象 通过适当的转换器 转换为指定的格式之后,写入到response对象的body区(响应体中),通常用来返回JSON数据或者是XML。   数据,需要注意的呢,在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,它的效果等同于通过response对象输出指定格式的数据。 这里...
@responsebody注解作用
weixin_44144370的博客
07-08 1036
Springboot中根本不需要做什么,主要返回值是一个对象,传递给浏览器后,都会将这个对象转换成json字符串,key对应对象字段名称,value对应字段值。
@ResponseBody 和 @RequestBody 注解的区别
08-31
Spring 框架中,@ResponseBody 和 @RequestBody 是两个常用的注解,它们都用于处理 HTTP 请求和响应,但是它们的作用和使用场景却有所不同。 一、@ResponseBody 注解 @ResponseBody 注解表示该方法的返回结果...
@ResponseBody注解和@RequestBody注解使用
我爱吃红薯的博客
07-14 642
1,@ResponseBody注解 @ResponseBodyjava对象转为json格式的数据,返回页面。 一般@RestController的作用就相当于@ResponseBody+@Controller 一般使用: @RestController @RequestMapping("/sys/student") public class StudentController { } 2,@RequestBody注解 @RequestBody使用json的格式传递数据,把json数据封装到.
@ResponseBody注解作用和原理
qq_34376868的博客
02-10 848
@ResponseBody作用其实是将java对象转为json格式的数据。 @responseBody注解作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。 注意:在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式...
Springboot-@Responsebody注解作用
weixin_42468227的博客
10-09 1407
Responsebody作用 将controller的方法返回的对象,通过适当的转换器转换成指定的格式后,写入到response对象的body区(响应体中),通常用于返回json数据或者是xml 数据,需要注意的是,在使用此注解后不会再走视图处理器,而是直接将数据写入到输入流中,效果等同于通过response对象输出指定格式的数据 这里还要着重强调一下,要通过@ResponseBody注解将返回的json字符串放入到响应体中,前台js才能拿到json字符串进行解析 例如: @RequestMappi
@responseBody注解作用
qq_41425522的博客
03-23 249
@responseBody注解作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML  数据,需要注意的呢,在使用此注解之后不会再走试图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。...
responsebody注解作用
lvpf
09-12 151
https://blog.csdn.net/sunroyfcb/article/details/81048675
简述@RequestBody注解和@ResponseBody注解作用
05-28
@RequestBody注解和@ResponseBody注解都是Spring MVC框架中用于处理HTTP请求和响应的注解。...需要注意的是,@RequestBody注解和@ResponseBody注解通常需要配合使用,以实现客户端和服务端之间的数据交互。
13
原创
48
点赞
239
收藏
7
粉丝
关注
私信
写文章

热门文章

  • Spring中@Autowired 注解作用是什么?具体怎么使用? 24290
  • @ResponseBody注解的具体作用和用法 22508
  • java中Query类的解析和具体用法 14857
  • LoggerFactory.getLogger具体用法 4806
  • @GetMapping(value=“/“) 注解中,“/“有和没有有何区别 4720

最新评论

  • LoggerFactory.getLogger具体用法

    沨沙: 如果父类有protected Logger logger = LoggerFactory.getLogger(xxx.class); 子类直接logger.info是打印的父类还是子类?

  • java中Query类的解析和具体用法

    一条小袁子: 导那个包啊

  • @ResponseBody注解的具体作用和用法

    qq_25073223: http://www.java265.com/JavaFramework/Spring/202211/4947.html 看这里,我觉得这个段落清楚一些哦!

  • @ResponseBody注解的具体作用和用法

    感谢一切给予: 学习到了

  • @ResponseBody注解的具体作用和用法

    Thir01: 学习了学习了

最新文章

  • MySQL中limit与limit_offset区别及使用方法
  • @GetMapping(value=“/“) 注解中,“/“有和没有有何区别
  • java中Query类的解析和具体用法
2020年13篇

目录

目录

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家庆阳人物玻璃钢雕塑多少钱潮州广场玻璃钢动物雕塑运城太湖石玻璃钢景观雕塑公司泸州玻璃钢艺术雕塑厂商场内衣区域美陈仿古铜玻璃钢景观小品雕塑青岛玻璃钢浮雕雕塑开封玻璃钢卡通人物雕塑定做金昌人物玻璃钢雕塑多少钱乌鲁木齐市玻璃钢雕塑自贡玻璃钢造型雕塑惠州led发光玻璃钢雕塑厂家品牌玻璃钢卡通雕塑供应进口玻璃钢雕塑哪家好商场美陈水晶球三明模压法玻璃钢雕塑厂家商丘卡通玻璃钢雕塑玻璃钢雕塑艺术玻璃钢雕塑包装防护惠州玻璃钢动物雕塑推荐厂家寻找做玻璃钢雕塑工人做玻璃钢雕塑哪家服务好温州室内商场美陈青岛市玻璃钢雕塑定制仿铜玻璃钢雕塑工厂商场美陈下半年计划开封玻璃钢室外雕塑厂江苏红色玻璃钢花盆自贡玻璃钢雕塑摆件施工浙江玻璃钢青蛙雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化