SpringMVC从入门到放弃之@RequestParam与@RequestBody

1.概述

RequestParam与RequestBody是在springmvc接收参数时使用较多的两种注解,然而两者之间的区别、使用方式和使用场合你是否真的清楚,本文将基于@RequestParam与@RequestBody的使用场合与使用方式进行分析,并结合一些案例进行演示。

[email protected]

2.1 属性
RequestParam主要的属性包括name与value,但两者又互为别名,所以基本上是一样的。源码如下:
SpringMVC从入门到放弃之@RequestParam与@RequestBody
2.2 Get方式请求
1.controller层代码
SpringMVC从入门到放弃之@RequestParam与@RequestBody
2.postman请求
SpringMVC从入门到放弃之@RequestParam与@RequestBody
3.浏览器请求
SpringMVC从入门到放弃之@RequestParam与@RequestBody
由上文可以看出:当利用@RequestParam注解时,利用get方式请求,能够获取@RequestParam中指定名称的值。

2.3 Post请求方式
1.controller层代码
SpringMVC从入门到放弃之@RequestParam与@RequestBody
2.postman请求
SpringMVC从入门到放弃之@RequestParam与@RequestBody
由上文可以看出:当利用@RequestParam注解时,利用Post方式请求,能够获取@RequestParam中指定名称的值。

[email protected]

3.1 Get方式请求
1.controller层代码
SpringMVC从入门到放弃之@RequestParam与@RequestBody
2.postman请求
SpringMVC从入门到放弃之@RequestParam与@RequestBody
3.2 Post方式请求
1.controller层代码
SpringMVC从入门到放弃之@RequestParam与@RequestBody
2.postman测试
SpringMVC从入门到放弃之@RequestParam与@RequestBody

4.小结

1.GET方式、POST方式均可以在body体中传递参数,但GET请求方式中添加body是不符合规范的,而且老版本的postman是不支持在GET请求里加body的,新版本的postman最近才添加上此功能;
2.在POST请求中(包括PUT、DELETE、POST),均可以使用@RequestParam与@RequestBody,使用@RequestParam则需要在url中传参,使用@RequestBody参数则需要放在body体中;
3.为了符合规范,一般GET请求使用@RequestParam来获取参数值,而在Post请求方式中,使用@RequestParam和@RequestBody均可,主要根据参数形式来制定,若参数为json形式,最好放在body体中,具体可根据场景来制定。

5.参考文献

1.https://blog.csdn.net/HermitSun/article/details/89889743
2.https://blog.csdn.net/xinluke/article/details/52710706