Spring Boot框架Controller中的注解说明

@RequestParam注解参数

  • @RequestParm获取的是url上的参数。
  • @RequestParm加了并且未设置required为false则该参数为必传
  • 请求方式为:
  1. application/x-www-form-urlencoded。这是一种默认编码方式,会将参数以键值对的形式发给服务器。例如:name=hk111111&sex=1,可以在url上,还可以在请求体内。

  2. form-data。表单

    http请求中的multipart/form-data,会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。
    既可以上传键值对,也可以上传文件
    当上传的字段是文件,会使用content-type表明文件类型;content-disposition说明字段的一些信息。
    由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对。

    GET /api/test/requestParam HTTP/1.1
    Content-Type: multipart/form-data; boundary=--------------------------836634504018956440582175
    User-Agent: PostmanRuntime/7.17.1
    Accept: */*
    Cache-Control: no-cache
    Postman-Token: 79944db1-c0cc-46a3-9a33-ae554d78b2e0
    Host: localhost:8888
    Accept-Encoding: gzip, deflate
    Cookie: JSESSIONID=41A840ADD2AA4F9186D82E4A177BF7A8
    Content-Length: 19460
    Connection: keep-alive
    
    ----------------------------836634504018956440582175
    Content-Disposition: form-data; name="name"
    
    hk3
    ----------------------------836634504018956440582175
    Content-Disposition: form-data; name="sex"
    
    1
    ----------------------------836634504018956440582175
    Content-Disposition: form-data; name="picture"; filename="22.jpg"
    Content-Type: image/jpeg
    
    ......JFIF.............C...........		.
    ..
    ................. $.' ",#..(7),01444.'9=82<.342...C.			....
    
    .2!.!22222222222222222222222222222222222222222222222222...........".....................................	
    
  • multipart/form-data与application/x-www-from-urlencoded区别

    1. multipart/form-data:既可以上传二进制数据,也可以上传表单键值对,只是最后会转化为一条信息

    2. x-www-from-urlencoded:只能上传键值对,并且键值对都是间隔分开的。

@RequestBody注解

  • @requestBody是用来接收前端发送的json格式的数据。(请求体中)
  • 在一个请求中,@RequestParam()和@RequestBody可以同时使用,@RequestBody只有一个,@RequestParam()可以有多个。
  • @RequestParam和@RequestBody同时使用时,需采用post请求,并且url上需要带参数供@RequestParam解析。

参考资料

[^ 1] @RequestBody的使用

[^2 ] @RequestBody 和 @RequestParam可以同时使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值