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)文章
SpringBoot集成Caffeine緩存的實(shí)現(xiàn)步驟
Caffeine cache是一個(gè)針對(duì)Java的高性能緩存庫。在本文中,我們將介紹它與Spring Boot如何一起使用。2021-05-05springboot如何獲取相對(duì)路徑文件夾下靜態(tài)資源的方法
這篇文章主要介紹了springboot如何獲取相對(duì)路徑文件夾下靜態(tài)資源的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-05-05一文搞懂并學(xué)會(huì)使用SpringBoot的Actuator運(yùn)行狀態(tài)監(jiān)控組件的詳細(xì)教程
這篇文章主要介紹了一文搞懂并學(xué)會(huì)使用SpringBoot的Actuator運(yùn)行狀態(tài)監(jiān)控組件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09MyBatis中RowBounds實(shí)現(xiàn)內(nèi)存分頁
RowBounds是MyBatis提供的一種內(nèi)存分頁方式,適用于小數(shù)據(jù)量的分頁場(chǎng)景,本文就來詳細(xì)的介紹一下,具有一定的參考價(jià)值,感興趣的可以了解一下2024-12-12Java Hutool工具實(shí)現(xiàn)驗(yàn)證碼生成及Excel文件的導(dǎo)入和導(dǎo)出
Hutool是一個(gè)小而全的Java工具類庫,通過靜態(tài)方法封裝,降低相關(guān)API的學(xué)習(xí)成本,提高工作效率,本文主要介紹了使用Hutool工具實(shí)現(xiàn)驗(yàn)證碼生成和excel文件的導(dǎo)入、導(dǎo)出,需要的朋友可參考一下2021-11-11Java結(jié)構(gòu)型設(shè)計(jì)模式之裝飾模式詳解
裝飾模式(Decorator Pattern)允許向一個(gè)現(xiàn)有的對(duì)象添加新的功能,同時(shí)又不改變其結(jié)構(gòu)。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它是作為現(xiàn)有類的一個(gè)包裝。這種模式創(chuàng)建了一個(gè)裝飾類,用來包裝原有的類,并在保持類方法簽名完整性的前提下,提供了額外的功能2023-03-03