spring-boot-route(一)Controller接收引數的幾種方式
阿新 • • 發佈:2020-10-02
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準時推送技術文章,讓你的上班路不在孤獨,而且每月還有送書活動,助你提升硬