附加:【POST请求:方法参数放在url中和放在body中,有什么区别】;也包括【@Param,@RequestParam,@RequestBody这三个【与接收参数有关】的注解,总结】;

说明:

(1)为什么写了本篇博客?:在【Spring Boot电商项目23:商品分类模块二:【增加目录分类】接口;】中,发现有的POST请求的参数放在了url后,有的放在了Body中;对此,存在疑惑的地方;所以写了本篇博客;

          同时,本篇博客也顺手总结了@Param,@RequestParam,@RequestBody这三个【与接收参数有关】的注解;

(2)本篇博客参考的文章有:

          ● 本篇博客参考了一个知乎问答【Post 方法参数写在body中和写在url中有什么区别?】;

(3)声明:本篇博客的主要目的是【帮助自己形成自洽】;但是,自己深刻感受到,对HTTP协议的了解还是太浅了;以后,需要慢慢提升;

目录

1.POST请求:方法参数放在url中和放在body中,有什么区别?:参考知乎的回答; 

2.比如,本项目中;(包括【@Param,@RequestParam,@RequestBody这三个【与接收参数有关】的注解,总结)

(1)POST请求,可以把参数放在url中;(涉及,@RequestParam注解)

(2)POST请求,可以把参数放在body中;(涉及,@RequestBody注解)

(3)额外插:@Param注解;


1.POST请求:方法参数放在url中和放在body中,有什么区别?:参考知乎的回答; 

这儿的内容,完全照抄自知乎问答【Post 方法参数写在body中和写在url中有什么区别?】,该回答的作者是【严振杰】;

2.比如,本项目中;(包括【@Param,@RequestParam,@RequestBody这三个【与接收参数有关】的注解,总结)

(1)POST请求,可以把参数放在url中;(涉及,@RequestParam注解)

PS:在【SpringMVC入门与数据绑定5:Spring MVC数据绑定二:Controller接收请求中的参数之:使用【方法参数】接收;(PS:包括get请求时使用的@RequestParam())】第一次介绍了【@RequestParam注解】;

目前来看这儿的逻辑是(起码目前可以这样看):【get请求,参数是放在url中,而且经常出现如user_name这样的名字;;;为了能以userName的方式接收到这个参数;;;我们就使用了@RequestParam注解】→【然后,@RequestParam注解可以推广开来;;;凡是参数是在url中的请求,,,,都可以使用@RequestParam注解去接收】→【于是,即使对于POST请求,如果参数在url中,也可以使用@RequestParam注解】→【其实,如果参数名和接口中的参数名写对,即使不用@RequestParam注解,也是能接收到参数的;;;;也就是说,@RequestParam注解可以看成是一种保险】;

补充(20220310):如果后端是使用方法参数(而不是Java Bean)去接收参数时,才能使用@RequestParm注解;;;如果前端的参数放在url中,而后端是使用JavaBean去接收参数,那么我们是不能使用@RequestPram注解的;

……………………………………………………

(2)POST请求,可以把参数放在body中;(涉及,@RequestBody注解)

声明:对于POST请求,如果参数放在body中,我们必须使用@RequestBody注解才能接收到参数;如果不加,无法从请求体中获取数据,就会提示错误。

           即,@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。

……………………………………………………

(3)额外插:@Param注解;

最近一次说道@Param注解,是在【Spring Boot电商项目19:用户模块八:普通用户登录接口开发;(一个特别需要注意的点:对于Mybatis来说,如果Mapper接口中的方法的参数不止一个,需要使用@Param注解;)】;

 (1)上一次在Mapper接口的方法中,使用【@Param注解】是在【OA系统十七:请假申请三:【请假申请】这个内嵌界面中【提交请假表单数据】的Service层;(PS:在EmployeeDao中初次遇到@Param()参数设置)】;

(2)对于Mybatis来说,如果Mapper接口中的方法只有一个参数的话,是可以不用【@Param注解】注解的;但是,如果有多个参数的话,是一定要使用【@Param注解】注解的;否则,mapper.xml中的SQL语句在获取参数的时候,就会混乱;(即@Param注解的作用类似于:给其参数起个别名,在投入到SQL之前,最后归整一下)

下图说道不不严谨,重点看下划线的部分(存疑); 

  • 44
    点赞
  • 179
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值