SpringBoot Controller接收參數的常用方式

文章目錄

  • 一、請求路徑參數
    • 1、@PathVariable
  • 二、Body參數
    • 1、@RequestParam
    • 2、@RequestBody
  • 三、請求頭參數和Cookie參數
    • 1、@RequestHeader
    • 2、@CookieValue

一、請求路徑參數

1、@PathVariable

注解為:

org.springframework.web.bind.annotation.@PathVariable

獲取路徑參數,即 url/{id} 這種形式,如下請求路徑中 1 即為這里的 {id}

http://localhost:8080/param/path/1

對應的 Java 代碼:

@RequestMapping(value = "/param/path/{id}")
public String pathParams(@PathVariable(name = "id") String id){return "return id = " + id;
}

Postman 請求測試結果:
在這里插入圖片描述


二、Body參數

1、@RequestParam

注解為:

org.springframework.web.bind.annotation.@RequestParam

獲取查詢參數,即 url?id=&name= 這種形式,如下請求(這里以GET請求方式為例)中,1id 值,davisname 值。

http://localhost:8080/param/request?id=1&name=davis

對應的 Java 代碼:

@RequestMapping(value = "/param/request")
public String requestParams(@RequestParam(name = "id", required = false) String id, @RequestParam(name = "name", required = false) String name){return "return id = " + id + ", name = " + name;
}

required = false 表示該參數可以不存在。

注:

  • 此方式一個參數對應一個注解,適用于少參數請求。

  • 此方式支持GET、POST請求。

Postman 請求測試結果:

GET請求方式
在這里插入圖片描述
POST請求方式
在這里插入圖片描述


2、@RequestBody

注解為:

org.springframework.web.bind.annotation.@RequestBody

注:此種方式只支持POST請求。

請求地址:

http://localhost:8080/param/body

對應的 Java 代碼:

@RequestMapping(value = "/param/body", method = RequestMethod.POST)
public String bodyParams(@RequestBody Map<String, Object> maps){return "return " + maps.toString();
}

注:此種方式請求的 Content-Type 必須為 application/json

Postman 請求測試結果:
在這里插入圖片描述

以上使用的是 Map 對象接收的參數,其實我們也可以使用 實體類對象(Person)來接收參數。

請求地址:

http://localhost:8080/param/body2

對應的 Java 代碼:

@RequestMapping(value = "/param/body2", method = RequestMethod.POST)
public Person bodyParams2(@RequestBody Person person){return person;
}

實體類 Person,這里使用了 Lombok注解

import lombok.Data;@Data
public class Person {private String id;private String name;
}

注:此種方式請求的 Content-Type 必須為 application/json

Postman 請求測試結果:
在這里插入圖片描述


三、請求頭參數和Cookie參數

1、@RequestHeader

注解為:

org.springframework.web.bind.annotation.@RequestHeader

請求地址:

http://localhost:8080/param/header

對應的 Java 代碼:

@RequestMapping(value = "/param/header")
public String headerParams(@RequestHeader(name = "header", required = false) String header){return "return header = " + header;
}

注:此方式支持GET、POST請求。

Postman 請求測試結果:
在這里插入圖片描述


2、@CookieValue

注解為:

org.springframework.web.bind.annotation.@CookieValue

請求地址:

http://localhost:8080/param/header

對應的 Java 代碼:

@RequestMapping(value = "/param/cookie")
public String cookieParams(@CookieValue(name = "cwcookie", required = false) String cwcookie){return "return cookie = " + cwcookie;
}

注:此方式支持GET、POST請求。

Postman 請求測試結果:

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/446707.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/446707.shtml
英文地址,請注明出處:http://en.pswp.cn/news/446707.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++primer第十章 泛型算法 10.1 概述 10.2 初識泛型算法

大多數算法都定義在頭文件algorithm中。標準庫還在頭文件numeric中定義了 一組數值泛型算法一般情況下&#xff0c;這些算法并不直接操作容器&#xff0c;而是遍歷由兩個迭代器指定的一個元素范圍(參見9.2.1節&#xff0c;第296頁)來進行操作。通常情況下&#xff0c;算法遍歷范…

MySQL Mac安裝教程

文章目錄一、下載安裝包二、安裝三、啟動MySQL四、環境變量設置一、下載安裝包 下載地址&#xff1a;https://downloads.mysql.com/archives/community/ 二、安裝 雙擊安裝包&#xff0c;然后一直點繼續即可。 三、啟動MySQL 打開 系統偏好設置&#xff0c;會發現多了一個…

codeforces 96A-C語言解題報告

96A題目網址 題目解析 1.輸入0和1表示不同隊的隊員字符串,如果7個及以上的一個0或1在一起,則輸出YES否則輸出NO 舉例: 輸入: 1000000001 輸出: YES 2.循環時,當遇到count7時輸出YES并跳出循環,遇到s[i]!s[i1]時,將count重置為1,最后count<7再輸出NO 代碼 #include<s…

C++生成指定范圍內的隨機數

代碼 rand&#xff08;&#xff09;% 3 &#xff1b; 3就是范圍&#xff0c;代表生成[0,3)之間的隨機數 int main(){for (int i 0; i < 20; i) {switch (rand() % 3) {case 0:std::cout << "00" << std::endl;case 1:std::cout << "11&q…

MySQL 客戶端命令

文章目錄1、連接命令2、斷開連接3、命令結束符4、查看所有數據庫5、切換到指定數據庫6、查看當前使用的數據庫7、查看庫中所有表8、查看所有用戶9、執行SQL腳本10、查詢當前時間1、連接命令 首先定位到MySQL安裝根目錄/bin目錄下&#xff0c;然后執行如下命令&#xff1a; my…

SQL 庫、表語句

文章目錄一、數據庫操作1、創建數據庫2、刪除數據庫二、表操作1、創建表&#xff08;1&#xff09;主鍵&#xff08;primary key&#xff09;屬性&#xff08;2&#xff09;unique屬性&#xff08;3&#xff09;主鍵和unique約束的區別&#xff08;4&#xff09;外鍵&#xff0…

codeforces 69A-C語言解題報告

69A題目網址 題目解析 1.輸入n個(x,y,z),當xi相加0;yi相加0;zi相加0同時時輸出YES,否則輸出NO 舉例: 輸入: 3 3 -1 7 -5 2 -4 2 -1 -3 輸出: YES 2.注意點:使用二維數組去存放時,使用遍歷行并對每一列分別相加 for(b0;b<n;b){count_xdir[b][0];count_ydir[b][1];count_z…

C++primer第十章 泛型算法 10.3 定制操作

10.3定制操作 很多算法都會比較輸入序列中的元素。默認情況下&#xff0c;這類算法使用元素類型的&#xff1c;或運算符完成比較。標準庫還為這些算法定義了額外的版本&#xff0c;允許我們提供自己定義的操作來代替默認運算符。例如&#xff0c;sort算法默認使用元素類型的&l…

SQL 查詢語句

文章目錄1、簡單查詢2、去除單列的重復結果查詢3、去除多列的重復結果查詢4、限制查詢結果條數5、對查詢結果排序&#xff08;1&#xff09;按照單個列的值進行排序&#xff08;2&#xff09;按照多個列的值進行排序6、帶搜索條件查詢&#xff08;1&#xff09;簡單搜索條件查詢…

2000年考研英語閱讀理解文章一

文章詳細講解網址 注意點 1.文章開篇第一句話往往是文章所想要通過后面講解的事情表達出來的最終觀點 2.當詢問到作者觀點時,往往在最后一段,一般以下形式呈現: 1)few people …(這就是作者的觀點) 2)I think 后面舉什么別人所說的話,如果不是表達了贊同,則都是別人的觀點,而…

C++primer第十章 泛型算法 10.4 再探迭代器 10.5 泛型算法結構

除了為每個容器定義的迭代器之外&#xff0c;標準庫在頭文件iterator中還定義了額外幾種迭代器。這些迭代器包括以下幾種。插入迭代器(insert iterator)&#xff1a;這些迭代器被綁定到一個容器上&#xff0c;可用來向容器插入元素。流迭代器(stream iterator)&#xff1a;這些…

codeforces 546A-C語言解題報告

546A題目網址 題目解析 1.輸入 k(成本),n(擁有的錢),w(要買的個數),輸出還需要向朋友借多少錢? 舉例: 輸入: 3 17 4 輸出: 13 2.注意: 1)第i個,需要i*k個價錢,所以需要使用for循環運算花費 2)當擁有的錢足夠買時,不需要借錢,輸出為0 代碼 #include<stdio.h> #inclu…

java.sql.SQLException: ORA-00604: 遞歸 SQL 級別 1 出現錯誤

文章目錄1、報錯信息2、原因分析3、解決方案1、報錯信息 java.sql.SQLException: ORA-00604: 遞歸 SQL 級別 1 出現錯誤 ORA-01000: 超出打開游標的最大數 ORA-00604: 遞歸 SQL 級別 1 出現錯誤 ORA-01000: 超出打開游標的最大數 ORA-01000: 超出打開游標的最大數at oracle.jd…

C++primer第十一章 關聯容器 11.1使用關聯容器 11.2 關聯容器概述

關聯容器和順序容器有著根本的不同&#xff1a;關聯容器中的元素是按關鍵字來保存和訪問的。與之相對&#xff0c;順序容器中的元素是按它們在容器中的位置來順序保存和訪問的。雖然關聯容器的很多行為與順序容器相同&#xff0c;但其不同之處反映了關鍵字的作用關聯容器支持高…

codeforces 791A-C語言解題報告

791A題目網址 題目解析 1.輸入a,b,每一年a3;b2,問多少年a>b? 2.因為不知道需要循環多少次,使用while循環 代碼 #include<stdio.h> #include<stdlib.h> #include<string.h> int main() {int a,b,i0;scanf("%d %d",&a,&b);while(a&l…

Redis Mac下安裝與使用

目錄一、下載安裝包二、編譯三、服務端與客戶端命令1、服務端啟動命令2、客戶端連接命令3、服務端關閉命令一、下載安裝包 官網地址&#xff1a;http://redis.io/download 下載后&#xff0c;解壓放到任意目錄下。 二、編譯 打開終端&#xff0c;切換到 Redis 根目錄&#x…

C++primer第十一章 關聯容器 11.3關聯容器操作 11.4 無序容器

11.3關聯容器操作 除了表9.2(第295頁)中列出的類型&#xff0c;關聯容器還定義了表11.3中列出的類型。這些類型表示容器關鍵字和值的類型。對于set類型&#xff0c;key_type和value type是一樣的&#xff1b;set中保存的值就是關鍵字。在一個map中&#xff0c;元素是關鍵字_值…

codeforces 977A-C語言解題報告

977A題目網址 題目解析 1,輸入數字n,運算次數k,當n最后一個數字是0時,n/10;當n最后一個數字不是0時,n-1;輸出n 舉例: 輸入: 512 4 輸出: 50 2.注意:當n最后一個數字是0時,使用n%100去判斷 代碼 #include<stdio.h> #include<stdlib.h> #include<string.h>…

SpringBoot 整合Dubbo

文章目錄一、工程目錄結構二、創建工程項目1、創建接口工程&#xff08;cw-dubbo-api&#xff09;&#xff08;1&#xff09;pom.xml&#xff08;2&#xff09;創建接口類&#xff08;LoginService&#xff09;2、創建服務提供者工程&#xff08;cw-dubbo-provider&#xff09;…

macos實現輸入文件輸入結束符

在clion軟件中&#xff0c;執行cin>>value ,如何手動輸入結束符號&#xff1f;&#xff1f;需要在debug環境下&#xff0c;然后&#xff0c;使用command D 實現此功能