java——@RequestBody和@RequestParam

本文解释了在JavaWeb开发中,@RequestBody和@RequestParam的区别,前者用于接收POST请求的JSON数据,后者适用于GET请求或URL参数。特别强调了@RequestBody对JSON和form-data类型的处理限制以及如何正确接收多参数的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@RequestBody和@RequestParam区别

  • @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的),因此@RequestBody只能用于接收POST请求的参数
  • @RequestParam接收的是key-value里面的参数(URL中的参数),通常用于接收GET请求的参数(POST也能接收只接收URL里的,请求体的接收不)

即:
如果参数是放在请求体中,传入后台的话,那么后台要用@RequestBody才能接收到;
如果不是放在请求体中的话,那么后台接收前台传过来的参数时,要用@RequestParam来接收。或则形参前什么也不写也能接收,不过参数名要与方法形参名一直才能绑定。

  • 尽管@RequestParam和@RequestBody都能接收Post方式请求传来的数据,但是@RequestParam不能接收json字符串,而@RequestBody能。

  • @RequestBody不能接收form-data类型的内容,@RequestParam能。后来改用@RequestBody进行参数绑定,仍不成功!

  • 原来json字符串中多个参数时@RequestBody并不能直接封装到Map,只有在接收单个参数时,才能将其封装绑定到Map中。

  • @ReuestBody接受单个参数的时候只能先使用Map<String,Object> params接收,然后再使用params.get(“name”)获取参数的值。

POST请求时:在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值