@RequestParam和@PathVariable以及@RequestBody的区别和使用
请求路径上的区别: 一个是https:url ?键值对,一个是https:url /参数
@RequestParam注解接收的参数是来自于requestHeader中,即请求头。都是用来获取请求路径url 中的动态参数,格式为xxx?username=123&password=456。功能与@pathvarible类似。
@RequestParam主要用于接收http://host:port/path**?参数名=参数值数据**,这里后面也可以不跟参数值。
@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)标注。
版权声明
本文仅代表作者观点,不代表博信信息网立场。