SpringBoot如何接收前端傳遞參數(shù)
1)URL參數(shù)
- 參數(shù)直接 拼接在URL的后面,使用 ? 進行分隔,多個參數(shù)之間用 & 符號分隔。
- 例如: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)請求頭(HTTP Headers)
- 請求頭可以攜帶一些屬性,如:message -> "123",可以放在請求頭中
- 例如:使用請求頭中Authorization屬性進行身份校驗
- 后端接收(在Controller方法的參數(shù)列表中使用
@RequestHeader注解):
@GetMapping("/verify")
public Boolean verify(@RequestHeader(name="Authorization") String token){
// 處理 ...
}3)請求體(Body)
- POST、PUT等請求可以在請求體中發(fā)送參數(shù),請求體通常以 JSON 或表單形式傳遞
- 例如,通過 POST 請求發(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 請求發(fā)送,表單中的每一項都會拼接到URL后面
- 例如:
| name | 張三 |
| age | 18 |
這個表單拼接在 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是瀏覽器存儲在用戶電腦上的一些數(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 注解進行獲取路徑內(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot使用Prometheus實現(xiàn)監(jiān)控
在當今的軟件開發(fā)世界中,監(jiān)控是至關(guān)重要的一部分,本文主要介紹了如何在Spring Boot應(yīng)用程序中使用Prometheus進行監(jiān)控,以幫助大家更好地理解和管理您的應(yīng)用程序,有需要的可以參考下2023-10-10
踩坑批量更新sql報錯,實際sql能夠正常執(zhí)行的問題
在項目工程遷移過程中,遇到了一個批量更新接口在新工程中報錯的問題,通過分析,排除了代碼錯誤的可能,最終發(fā)現(xiàn)是由于數(shù)據(jù)庫連接配置不當導(dǎo)致的,在jdbc連接字符串中加入allowMultiQueries=true參數(shù)后,問題得以解決,這個參數(shù)的作用是允許SQL批量執(zhí)行2022-12-12
SpringBoot返回統(tǒng)一的JSON標準格式實現(xiàn)步驟
這篇文章主要介紹了SpringBoot返回統(tǒng)一的JSON標準格式,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-08-08
關(guān)于Java Spring三級緩存和循環(huán)依賴的深入理解
對于循環(huán)依賴,我相信讀者無論只是聽過也好,還是有過了解也好,至少都有所接觸。但是我發(fā)現(xiàn)目前許多博客對于循環(huán)依賴的講解并不清楚,都提到了Spring的循環(huán)依賴解決方案是三級緩存,但是三級緩存每一級的作用是什么,很多博客都沒有提到,本篇文章帶你深入了解2021-09-09

