1. 程式人生 > >spring-boot-route(一)Controller接收引數的幾種方式

spring-boot-route(一)Controller接收引數的幾種方式

Controller接收引數的常用方式總體可以分為三類。第一類是Get請求通過拼接url進行傳遞,第二類是Post請求通過請求體進行傳遞,第三類是通過請求頭部進行引數傳遞。 ### 1 @PathVariable接收引數 請求方式:localhost:7001/param/123 請求示例: ![](https://i.loli.net/2020/08/17/zgbAuWnJ6fly5oi.png) 程式碼示例: ```java @GetMapping("{id}") public String getPathVariable(@PathVariable String id){ return "id="+id; } ``` ### 2 @RequestParam接收引數 使用這個註解需要注意兩個點,一是加了這個引數後則請求中必須傳遞這個引數,二是@RequestParam這個註解可以指定名字,請求引數必須和指定的這個名字相同,如果不指定,則預設為具體引數名。 請求方式:localhost:7001/param/getParam?myId=18 請求示例: ![](https://i.loli.net/2020/08/17/wGSs5CmYrdHqvEJ.png) 程式碼示例: ```java @GetMapping("getParam") public String getRequestParam(@RequestParam("myId") String id){ return "id="+id; } ``` ### 3 無註解傳參 這種方式和2對比,最大的區別就是這個引數不是必傳的,請求路徑上可以不傳遞。 請求方式:localhost:7001/param/getString?id=18 請求示例: ![](https://img2020.cnblogs.com/blog/1719198/202010/1719198-20201002192159187-22409778.png) 程式碼示例: ```java @GetMapping("getString") public String getString(String id){ return "id="+id; } ``` ### 4 HttpServletRequest接收引數 請求方式:localhost:7001/param/getRequest?id=18 請求示例: ![](https://img2020.cnblogs.com/blog/1719198/202010/1719198-20201002192143724-540406593.png) 程式碼示例: ```java @GetMapping("getRequest") public String getRequest(HttpServletRequest request){ String id = request.getParameter("id"); return "id="+id; } ``` ### 5 @RequestBody接收請求體引數 這種方式一般用來傳遞實體物件,加了這個註解後,引數也是必傳的。 請求方式:{"id":18} 請求示例: ![](https://img2020.cnblogs.com/blog/1719198/202010/1719198-20201002192214448-451412321.png) 程式碼示例: ```java @PostMapping("getBody") public String getBody(@RequestBody String id){ return "id="+id; } ``` ### 6 @RequestHeader接收請求頭引數 請求示例: ![](https://img2020.cnblogs.com/blog/1719198/202010/1719198-20201002192232728-182435548.png) 程式碼示例: ```java @PostMapping("getHeader") public String getHeader(@RequestHeader String id){ return "id="+id; } ``` 此是spring-boot-route系列的第一篇文章,這個系列的文章都比較簡單,主要目的就是為了幫助初次接觸Spring Boot 的同學有一個系統的認識。本文已收錄至我的[github](https://github.com/binzh303/spring-boot-route),歡迎各位小夥伴`star`! **github**:https://github.com/binzh303/spring-boot-route ## 點關注、不迷路 如果覺得文章不錯,歡迎**關注**、**點贊**、**收藏**,你們的支援是我創作的動力,感謝大家。 如果文章寫的有問題,請不要吝嗇,歡迎留言指出,我會及時核查修改。 如果你還想更加深入的瞭解我,可以微信搜尋「**Java旅途**」進行關注。回覆「**1024**」即可獲得學習視訊及精美電子書。每天7:30準時推送技術文章,讓你的上班路不在孤獨,而且每月還有送書活動,助你提升硬