SpringBoot如何接收前端傳遞參數(shù)
1)URL參數(shù)
- 參數(shù)直接 拼接在URL的后面,使用 ? 進(jìn)行分隔,多個(gè)參數(shù)之間用 & 符號(hào)分隔。
- 例如:http://localhost:8080/user?name=zhangsan&id=1
- 后端接收(在Controller方法的參數(shù)列表中使用 @RequestParam 注解):
@GetMapping("/user")
public User getUser(@RequestParam(name="name") String name,@RequestParam(name="id") Long id){
// 處理 ...
}2)請(qǐng)求頭(HTTP Headers)
- 請(qǐng)求頭可以攜帶一些屬性,如:message -> "123",可以放在請(qǐng)求頭中
- 例如:使用請(qǐng)求頭中Authorization屬性進(jìn)行身份校驗(yàn)
- 后端接收(在Controller方法的參數(shù)列表中使用
@RequestHeader注解):
@GetMapping("/verify")
public Boolean verify(@RequestHeader(name="Authorization") String token){
// 處理 ...
}3)請(qǐng)求體(Body)
- POST、PUT等請(qǐng)求可以在請(qǐng)求體中發(fā)送參數(shù),請(qǐng)求體通常以 JSON 或表單形式傳遞
- 例如,通過 POST 請(qǐng)求發(fā)送 JSON 數(shù)據(jù):{"id": 1,"name": "小明", age: 18}
- 后端接收(在Controller方法的參數(shù)列表中使用
@RequestBody注解):
public class User{
private Long id;
private String name;
private Integer age;
//get、set方法等...
}
//接收參數(shù)部分提取
@PostMapping("/addUser")
public void addUser(@RequestBody User user){
// 處理 ...
}4)表單(Form)
- 一般通過 POST 請(qǐng)求發(fā)送,表單中的每一項(xiàng)都會(huì)拼接到URL后面
- 例如:
| name | 張三 |
| age | 18 |
這個(gè)表單拼接在 http://localhost:8080/addUser 后面:
http://localhost:8080/addUse?name=張三&age=18,所以要用@RequestParam注解
@PostMapping("/addUser")
public void addUser(@RequestParam(name="name") String name,@RequestParam(name="age") Integer age){
// 處理 ...
}5)路徑參數(shù)(Path Param)
- 直接寫在路徑里,如:http://localhost:8080/getUser/1 中的1就是路徑參數(shù)
- 通過 @PathVariable 注解提取
@GetMapping("/getUser/{userId}")
public User getUser(@PathVariable(name="userId") Long id){
// 處理 ...
}6)Cookie
- cookie是瀏覽器存儲(chǔ)在用戶電腦上的一些數(shù)據(jù),一般存在有效期,
- 可以通過 @CookieValue 注解獲取指定的cookie數(shù)據(jù)
@GetMapping("/login")
public Boolean login(@CookieValue(name="username") String username,
@CookieValue(name="password") String password){
// 處理 ...
}7)在路徑參數(shù)中封裝的多條數(shù)據(jù)
- 如 http://localhost:8080/boss;name=老板;age=44/emp;name=員工;age=18
其中boss是路徑,"name=老板"與"age=44"屬于boss路徑下的參數(shù),
同理emp是路徑,"name=員工"與"age=18"屬于emp路徑下的參數(shù)
- 利用 @MatrixVariable 注解進(jìn)行獲取路徑內(nèi)的數(shù)據(jù)
- 如果要獲取路徑參數(shù)可以用 @PathVariable 注解
/*
@MatrixVariable中的屬性:
name: 指定獲取路徑內(nèi)數(shù)據(jù)的名稱
pathVar: 指定路徑名稱
*/
@GetMapping("/{Boss}/{Emp}") // Boss是路徑中的boss Emp是路徑中的emp
public void testMatrixVariable(
//獲取路徑內(nèi)封裝的數(shù)據(jù)
@MatrixVariable(name="name",pathVar="Boss") String name,
@MatrixVariable(name="age",pathVar="Boss") Integer age,
@MatrixVariable(name="name",pathVar="Emp") String name,
@MatrixVariable(name="age",pathVar="Emp") Integer age,4
//獲取路徑參數(shù)
@PathVariable(name="Boss") String boss,
@PathVariable(name="Emp") String emp
){
// 處理 ...
}到此這篇關(guān)于SpringBoot接收前端傳遞參數(shù)的文章就介紹到這了,更多相關(guān)SpringBoot接收前端參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java數(shù)據(jù)結(jié)構(gòu)之List的使用總結(jié)
List是Java中比較常用的集合類,指一系列存儲(chǔ)數(shù)據(jù)的接口和類,可以解決復(fù)雜的數(shù)據(jù)存儲(chǔ)問題,本文就來拿實(shí)際案例總結(jié)介紹一下List的使用方法,感興趣的朋友快來看看吧2021-11-11
Springboot項(xiàng)目啟動(dòng)成功后可通過五種方式繼續(xù)執(zhí)行
本文主要介紹了Springboot項(xiàng)目啟動(dòng)成功后可通過五種方式繼續(xù)執(zhí)行,主要包括CommandLineRunner接口,ApplicationRunner接口,ApplicationListener接口,@PostConstruct注解,InitalizingBean接口,感興趣的可以了解一下2023-12-12
Java import導(dǎo)入及訪問控制權(quán)限修飾符原理解析
這篇文章主要介紹了Java import導(dǎo)入及訪問控制權(quán)限修飾符過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
Thread線程的基礎(chǔ)知識(shí)及常見疑惑點(diǎn)總結(jié)
在本篇內(nèi)容里小編給大家分享的是關(guān)于Thread線程的基礎(chǔ)知識(shí)及常見疑惑點(diǎn),對(duì)此有學(xué)習(xí)需求的朋友們可以學(xué)習(xí)參考下。2019-05-05
SpringBoot實(shí)現(xiàn)文件在線預(yù)覽功能的全過程
我們開發(fā)業(yè)務(wù)系統(tǒng)的時(shí)候,經(jīng)常有那種文檔文件在線預(yù)覽的需求,下面這篇文章主要給大家介紹了關(guān)于SpringBoot實(shí)現(xiàn)文件在線預(yù)覽功能的相關(guān)資料,需要的朋友可以參考下2021-11-11
Java BigDecimal詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
BigDecimal 由任意精度的整數(shù)非標(biāo)度值 和32 位的整數(shù)標(biāo)度 (scale) 組成。接下來通過本文給大家介紹Java BigDecimal詳解,需要的的朋友參考下吧2017-04-04
maven的pom.xml中repositories和distributionManagement使用
這篇文章主要介紹了maven的pom.xml中repositories和distributionManagement使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03

