意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

@RequestParam和@PathVariable以及@RequestBody的区别和使用

来源:恒创科技 编辑:恒创科技编辑部
2024-01-30 02:41:59

请求路径上的区别: 一个是https:url ?键值对,一个是https:url /参数

@RequestParam注解接收的参数是来自于requestHeader中,即请求头。都是用来获取请求路径url 中的动态参数,格式为xxx?username=123&password=456。功能与@pathvarible类似。

@RequestParam主要用于接收http://host:port/path**?参数名=参数值数据**,这里后面也可以不跟参数值。


@RequestParam和@PathVariable以及@RequestBody的区别和使用

@RequestParam用于获取参数,可获取?username="sss"这种如:

@GetMapping("/suggestion")
public List<String> getSuggestions(@RequestParam("key") String prefix){
return hotelService.getSuggestions(prefix);
}

请求路径为:localhost:8080/suggestion/key?key=“h”

@PathVariable主要用于接收http://host:port/path{参数值}。如:

@GetMapping("/suggestion/{id}")
public List<String> getSuggestions(@PathVariable("id") Integer id){
return hotelService.getSuggestions(prefix);
}

请求路径为:localhost:8080/suggestion/123

@RequestBody注解接收的参数则是来自于requestBody中,即请求体中。

Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些Asp网页点击的结果却是下载到的一个文件或一张图片的原因。使用与不使用@RequestBody:

(1) 必须使用@requestBody.当请求content_type为:application/json类型的请求,数据类型为json时,json格式如下:{"aaa":"111","bbb":"222"}

(2) 可不使用@requestBody.当请求content_type为:application/x-www-form-urlencoded类型的或multipart/form-data时,数据格式为aaa=111&bbb=222。post请求一般用json格式,通过@RequestBody(required=true/false)标注。

上一篇: javascript - JS算法之回溯法_个人文章 下一篇: 手机怎么远程登录云服务器?