SpringBoot接收參數(shù)的8種方式示例詳解
1. 直接把請(qǐng)求參數(shù)寫(xiě)在方法的形參中
- 此場(chǎng)景適用于請(qǐng)求參數(shù)較少的情況
- 任何請(qǐng)求都可以
@RequestMapping("/fun1")
public Book fun1(String name, Long id){
log.info("{} {}",id,name);
Book book=new Book(id, name);
return book;
}
2. 封裝一個(gè)bean直接來(lái)接收
@RequestMapping("/fun2")
public Book fun2(Book book){
log.info("book={}",book);
return book;
}
3. 原生的HttpServletRequest接收
- 同時(shí)適用get、post方法
- 是整個(gè)請(qǐng)求,可以獲取到所有的數(shù)據(jù)
- 可以和其他的注解配合適用
- HttpServletRequest、HttpServletResponse都是內(nèi)置對(duì)象,可以使用
@RequestMapping("/fun3")
public Book fun3(HttpServletRequest request){
log.info("{} {}",request.getParameter("id"),request.getParameter("name"));
return new Book(Long.parseLong(request.getParameter("id")),request.getParameter("name"));
} // key-value 類型
Map<String, String[]> map = request.getParameterMap();
// 路徑參數(shù)
String pathInfo = request.getPathInfo();
// body內(nèi)容
ServletInputStream inputStream = request.getInputStream();
4. @PathVariable獲取rest風(fēng)格路徑參數(shù)
@RequestMapping("/fun4/{id}/{name}")
public Book fun4(@PathVariable long id,@PathVariable String name){
log.info("{} {}",id,name);
Book book=new Book(id, name);
return book;
}
5. @RequestParam綁定請(qǐng)求參數(shù)到方法形參
@RequestMapping("/fun6")
public Book fun6(@RequestParam("name") String name,
@RequestParam("id") Long id){
log.info("{} {}",id,name);
Book book=new Book(id, name);
return book;
}當(dāng)請(qǐng)求參數(shù)username或者password不存在時(shí)會(huì)有異常發(fā)生,可以通過(guò)設(shè)置屬性required=false解決 @RequestParam(value="username", required=false)

6. @RequestBody綁定請(qǐng)求參數(shù)到方法形參
- 只能Post方法
- 參數(shù)必須Json字符串
- Body只能有一個(gè)
@RequestMapping("/fun7")
public Book fun7(@RequestBody Book book){
log.info("book={}",book);
return book;
}
7. @RequestHeader
- RequestHeader主要用來(lái)獲取請(qǐng)求當(dāng)中的請(qǐng)求頭
// 方式1:獲取單個(gè)header屬性
@RequestMapping("/geteHeader")
public void getHeader(@RequestHeader("user-id") String userId){
}
//方式2:獲取所有header屬性
@RequestMapping("/geteHeader")
public void getHeader(@RequestHeader Map<String, String> headers){
}
//方式3 獲取header對(duì)象
@RequestMapping("/geteHeader")
public void getHeader(@RequestHeader HttpHeaders headers){
}8. @CookieValue
- 使用@CookieValue注解來(lái)獲得指定的 Cookie 的值。
@GetMapping("park/getCookie")
public String getCookieValue(@CookieValue("jid") String jId) {
System.out.println(jId);
return "success";
}到此這篇關(guān)于SpringBoot接收參數(shù)的8種方式的文章就介紹到這了,更多相關(guān)SpringBoot接收參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何使用Java?8函數(shù)式編程優(yōu)雅處理多層嵌套數(shù)據(jù)
Java8是Java語(yǔ)言歷史上的一個(gè)重大更新,它帶來(lái)了許多新的特性和改進(jìn),其中函數(shù)式編程的引入是其亮點(diǎn)之一,這篇文章主要介紹了如何使用Java?8函數(shù)式編程優(yōu)雅處理多層嵌套數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2026-01-01
SpringBoot環(huán)境搭建及第一個(gè)程序運(yùn)行(小白教程)
這篇文章主要介紹了SpringBoot環(huán)境搭建及第一個(gè)程序運(yùn)行,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
idea運(yùn)行程序報(bào)錯(cuò)java程序包org.junit不存在解決辦法
這篇文章主要給大家介紹了關(guān)于idea運(yùn)行程序報(bào)錯(cuò)java程序包org.junit不存在的解決辦法, 當(dāng)出現(xiàn)程序包org.junit不存在的問(wèn)題時(shí),可以通過(guò)使用適當(dāng)?shù)腏Unit版本、添加依賴或重新下載程序包等方式進(jìn)行解決,需要的朋友可以參考下2024-02-02
SpringBoot引入Redis報(bào)org.springframework.data.redis.core.RedisT
這篇文章主要介紹了SpringBoot引入Redis報(bào)org.springframework.data.redis.core.RedisTemplate類找不到錯(cuò)誤問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-09-09
mybatis-plus3.0.1枚舉返回為null解決辦法
這篇文章主要介紹了mybatis-plus3.0.1枚舉返回為null解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12

