Java中的6種請(qǐng)求方式的示例詳解
主要圍繞如下請(qǐng)求方式:
@RequestParam、@PathVariable、@MatrixVariable、@RequestBody、@RequestHeader和@CookieValue的基本知識(shí)、詳細(xì)分析以及示例
1. @RequestParam
用于綁定HTTP請(qǐng)求參數(shù)到控制器方法的參數(shù)上,常用于處理表單數(shù)據(jù)或查詢參數(shù)
@GetMapping("/greeting") public String greeting(@RequestParam(name="name", required=false, defaultValue="World") String name) { return "Hello, " + name; }
基本的屬性如下:
- value 或 name: 參數(shù)名
- required: 是否為必需參數(shù),默認(rèn)為true
- defaultValue: 參數(shù)的默認(rèn)值
具體調(diào)用兩種方式:
/greeting?name=John
,輸出Hello, John/greeting
,輸出默認(rèn)值 Hello, World
2. @PathVariable
用于綁定URL中的模板變量到控制器方法的參數(shù)上,常用于RESTful風(fēng)格的URL路徑中
@GetMapping("/users/{id}") public User getUser(@PathVariable("id") Long id) { return userService.findById(id); }
基本的屬性如下:
- value 或 name: 路徑變量名。
- required: 是否為必需參數(shù),默認(rèn)為true
請(qǐng)求方式: /users/1
,用戶ID為1的用戶對(duì)象
3. @MatrixVariable
用于綁定URL路徑中的矩陣變量到控制器方法的參數(shù)上,需要在Spring MVC中啟用矩陣變量支持
常與路徑變量結(jié)合使用
@GetMapping("/owners/{ownerId}/pets/{petId}") public Pet findPet(@PathVariable String ownerId, @MatrixVariable(name="q", pathVar="petId") int query) { // 處理代碼 }
基本的屬性如下:
- value 或 name: 矩陣變量名
- pathVar: 矩陣變量所屬的路徑變量名
具體調(diào)用方式如下:/owners/42/pets/21;q=123
,提取: ownerId 為42, petId 為21, q 為123
4. @RequestBody
用于將HTTP請(qǐng)求體的內(nèi)容綁定到控制器方法的參數(shù)上,常用于處理JSON、XML等格式的請(qǐng)求數(shù)據(jù)
@PostMapping("/users") public User createUser(@RequestBody User user) { return userService.save(user); }
- required: 是否為必需參數(shù),默認(rèn)為true
具體調(diào)用方式如下:
HTTP POST請(qǐng)求,內(nèi)容: {“name”: “John”, “age”: 30}
返回: 創(chuàng)建的用戶對(duì)象
5. @RequestHeader
用于綁定HTTP請(qǐng)求頭到控制器方法的參數(shù)上
@GetMapping("/header") public String getHeader(@RequestHeader("User-Agent") String userAgent) { return "User-Agent: " + userAgent; }
- value 或 name: 請(qǐng)求頭名
- required: 是否為必需參數(shù),默認(rèn)為true
- defaultValue: 參數(shù)的默認(rèn)值
具體調(diào)用方式如下:
設(shè)置請(qǐng)求頭User-Agent
返回: 用戶代理信息
6. @CookieValue
用于綁定HTTP請(qǐng)求的Cookie值到控制器方法的參數(shù)上
@GetMapping("/cookie") public String getCookie(@CookieValue(value = "sessionId", defaultValue = "defaultSessionId") String sessionId) { return "Session ID: " + sessionId; }
具體的屬性如下:
- value 或 name: Cookie名
- required: 是否為必需參數(shù),默認(rèn)為true
- defaultValue: 參數(shù)的默認(rèn)值
具體調(diào)用方式如下:
設(shè)置Cookie sessionId
返回: 會(huì)話ID信息
7. 總結(jié)
注解 | 作用 | 屬性 | 示例調(diào)用 |
---|---|---|---|
@RequestParam | 綁定HTTP請(qǐng)求參數(shù)到控制器方法的參數(shù)上 | value, required, defaultValue | /greeting?name=John |
@PathVariable | 綁定URL中的模板變量到控制器方法的參數(shù)上 | value, required | /users/1 |
@MatrixVariable | 綁定URL路徑中的矩陣變量到控制器方法的參數(shù)上 | value, pathVar | /owners/42/pets/21;q=123 |
@RequestBody | 將HTTP請(qǐng)求體的內(nèi)容綁定到控制器方法的參數(shù)上 | required | HTTP POST 請(qǐng)求,內(nèi)容: {“name”: “John”} |
@RequestHeader | 綁定HTTP請(qǐng)求頭到控制器方法的參數(shù)上 | value, required, defaultValue | 設(shè)置請(qǐng)求頭User-Agent |
@CookieValue | 綁定HTTP請(qǐng)求的Cookie值到控制器方法的參數(shù)上 | value, required, defaultValue | 設(shè)置Cookie sessionId |
以上就是Java中的6種請(qǐng)求方式的示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Java請(qǐng)求方式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot使用PropertiesLauncher加載外部jar包
這篇文章主要介紹了SpringBoot使用PropertiesLauncher加載外部jar包,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07springboot循環(huán)依賴問(wèn)題案例代碼及解決辦法
在 Spring Boot 中,如果兩個(gè)或多個(gè) Bean之間存在循環(huán)依賴(即 Bean A 依賴 Bean B,而 Bean B 又依賴 Bean A),會(huì)導(dǎo)致 Spring 的依賴注入機(jī)制無(wú)法正確處理,從而拋出異常,下面給大家介紹springboot循環(huán)依賴問(wèn)題及其解決辦法,感興趣的朋友一起看看吧2025-04-04MyBatisPlus查詢報(bào)錯(cuò)Unknow?column?‘id‘?in?‘field?list‘解決分析
這篇文章主要為大家介紹了MyBatisPlus查詢報(bào)錯(cuò)Unknow?column?‘id‘?in?‘field?list‘解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09關(guān)于idea中出現(xiàn)nbsp和zwsp的完美解決辦法
本文給大家介紹關(guān)于idea中出現(xiàn)nbsp和zwsp的解決辦法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2022-06-06Spring Kafka中@KafkaListener注解的參數(shù)與使用小結(jié)
@KafkaListener注解為開(kāi)發(fā)者提供了一種聲明式的方式來(lái)定義消息監(jiān)聽(tīng)器,本文主要介紹了Spring Kafka中@KafkaListener注解的參數(shù)與使用小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06