SpringBoot接收參數(shù)的8種方式示例詳解
1. 直接把請(qǐng)求參數(shù)寫在方法的形參中
- 此場(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ā)生,可以通過設(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)文章
Spring Boot 實(shí)現(xiàn)圖片上傳并回顯功能
本篇文章給大家分享Spring Boot 實(shí)現(xiàn)圖片上傳并回顯功能,文中通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-07-07SpringBoot自動(dòng)重啟、熱啟動(dòng)方式
這篇文章主要介紹了SpringBoot自動(dòng)重啟、熱啟動(dòng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03最新IntelliJ IDEA 2021版配置 Tomcat 8.5 的詳細(xì)步驟
idea開發(fā)工具一直是java環(huán)境最好用,很受廣大開發(fā)者喜愛,今天通過本文給大家分享最新IntelliJ IDEA 2021版配置 Tomcat 8.5 的詳細(xì)步驟,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-06-06Java中Map和Set練習(xí)項(xiàng)目實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于Java中Map和Set練習(xí)項(xiàng)目的相關(guān)資料,首先介紹了如何使用map來(lái)統(tǒng)計(jì)字符串?dāng)?shù)組中每個(gè)字符串的出現(xiàn)次數(shù),然后討論了如何使用set來(lái)找出只出現(xiàn)一次的數(shù)字,最后提出了一個(gè)解決壞鍵盤打字問題的思路,需要的朋友可以參考下2024-11-11Spring Boot 實(shí)現(xiàn)敏感詞及特殊字符過濾處理
這篇文章主要介紹了SpringBoot實(shí)現(xiàn)敏感詞及特殊字符過濾處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06spring?@Conditional的使用與擴(kuò)展源碼分析
這篇文章主要介紹了spring?@Conditional的使用與擴(kuò)展,這里需要注意如果Condition返回的是false,那么spirng就不會(huì)對(duì)方法或類進(jìn)行解析,具體源碼分析跟隨小編一起看看吧2022-03-03Java大文本并行計(jì)算實(shí)現(xiàn)過程解析
這篇文章主要介紹了Java大文本并行計(jì)算如何實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06微信游戲打飛機(jī)游戲制作(java模擬微信打飛機(jī)游戲)
java模擬微信打飛機(jī)游戲,大家參考使用吧2013-12-12