2022-08-31-后端接收Get请求与Post请求-参数示例
后端接收Get请求与Post请求 参数示例
博主介绍: 22届计科专业毕业,来自湖南,主要是在CSDN记录一些自己在Java开发过程中遇到的一些问题,欢迎大家一起讨论学习,也欢迎大家的批评指正。
文章目录
前言
本文通过示例介绍:Controller层如何获取Get与Post请求携带的参数(SpringMVC框架)
正文
接收Get请求的参数
不使用注解直接通过参数名接收参数
Get请求的参数直接拼接在Url路径后面,如下所示:
http://localhost:8080/TW_Server/Test/getTest.do?userName=root&password=123456
该请求携带了两个名分别为
userName
与
password
的参数,他们的值分别是
root
与
123456
后台写法如下:
测试结果:
此方法要求请求的参数名与接口写的参数名必须一致,否则后台接收不到。
使用PathVariable注解接收路径参数
Get请求参数写在Url路径中,如下所示:
http://localhost:8080/TW_Server/Test/root/123456/getTest.do
路径中
root
和
123456
是我传的参数
后台写法如下:
测试结果:
还可以写成以下格式,这样只需要保证
@PathVariable
注解括号里的值与路径值对应就可以获取到参数,否则会报错:
测试结果:
接收Post请求的参数
Post请求提交的参数类型
我自己常遇到的:
Content-Type:multipart/form-data(用于在表单中上传文件)
Content-Type:application/x-www-form-urlencoded(浏览器原生的form表单类型,不能上传文件)
Content-Type:application/json(以json形式进行传输,通常是传输对象时使用)
不常遇到的:
Content-Type:application/xml
Content-Type:application/javascript
Content-Type:text/plain
Content-Type:text/html
Content-Type:multipart/form-data格式参数
不使用注解通过参数名接收对应参数
首先我创建一个文件如下所示:
后台写法(方法体就是将文件内容做个输出,不用过于纠结,我们的重点是接收参数):
发送测试请求:
测试结果:
控制台输出的文件内容
接口返回的结果:
不使用注解,通过 HttpServletRequest
对象获取参数
后台写法:
测试结果:
这个写法不能获取文件参数。
使用 @RequestParam
注解接收参数
@RequestParam
注解括号中的值要与请求中传的参数名相同才行,否则会报错。
后台写法:
发送测试请求:
测试结果依然是可以拿到数据,这里就不贴图了。
Content-Type:application/x-www-form-urlencoded格式参数
该格式接收参数的方法直接参考
multipart/form-data
格式的就可以了,只是他不能上传文件而已。
Content-Type:application/json格式参数
使用 @RequestBody
注解接收参数:
创建一个Param实体类:
后台写法:
测试结果:
不使用注解,通过 HttpServletRequest
获取参数
后台写法:
发送测试请求:
测试结果:
后端使用集合接收参数(List)
前端传参格式(请求方式为post):
后端接受格式
输出结果:
有趣的点:前端传String 后端使用集合接收参数
如下图所示,使用 List< String > a 接收参数:
如果传一个参数名为:a 的参数就会报错,但是如果将参数名改为stringList,会接收成功
而且stringList会匹配参数中所有的集合参数:
如果想用集合指定的参数名接收参数可以将集合封装到一个类中:
68747470733a2f:2f626c6f672e6373646e2e6e65742f4c6f766553746164792f:61727469636c652f64657461696c732f313236363230393232