欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot請求參數(shù)接收控制指南分享

 更新時(shí)間:2025年04月25日 14:42:00   作者:L_?。?!  
這篇文章主要介紹了SpringBoot請求參數(shù)接收控制指南,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Spring Boot 請求參數(shù)接收控制指南

1. 概述

在Spring Boot項(xiàng)目中,我們可以通過不同的注解來接收來自HTTP請求的各種參數(shù)。

本指南將詳細(xì)介紹各種參數(shù)接收方式及其使用場景。

2. 有注解時(shí)參數(shù)接收方式對比

參數(shù)類型注解位置適用HTTP方法示例
路徑參數(shù)@PathVariableURL路徑中GET, DELETE/users/{id}
查詢參數(shù)@RequestParamURL?后GET/users?name=John
請求體@RequestBody請求體POST, PUT, PATCHJSON/XML數(shù)據(jù)
請求頭@RequestHeaderHTTP頭任意Authorization: Bearer token
Cookie值@CookieValueCookie頭任意Cookie: JSESSIONID=xxx
表單數(shù)據(jù)@RequestParam表單體POSTapplication/x-www-form-urlencoded
文件上傳@RequestParammultipart/form-dataPOST文件上傳表單

3. 無注解時(shí)接收參數(shù)默認(rèn)位置

Spring Boot 默認(rèn)參數(shù)綁定規(guī)則(不加注解時(shí))

請求類型參數(shù)類型默認(rèn)綁定位置示例注意事項(xiàng)
GET基本類型/String自動綁定到URL查詢參數(shù)GET /user?name=Tom → public String getUser(String name)參數(shù)名必須與URL中的key一致
POJO對象自動綁定到URL查詢參數(shù)GET /user?name=Tom&age=20 → public String getUser(User user)對象的字段名需與URL參數(shù)匹配
數(shù)組/集合自動綁定到URL查詢參數(shù)GET /user?ids=1,2,3 → public String getUser(List<Integer> ids)支持逗號分隔或同名參數(shù)(ids=1&ids=2)
POST基本類型/String表單數(shù)據(jù) (Form Data)POST /user (Content-Type: application/x-www-form-urlencoded)需設(shè)置Content-Type為表單類型
POJO對象表單數(shù)據(jù)或JSON請求體若為application/json → 綁定到請求體;若為表單 → 按字段名匹配需明確指定Content-Type,否則可能解析失敗
數(shù)組/集合表單數(shù)據(jù)或JSON請求體同POJO規(guī)則表單格式需用同名參數(shù)(names=Tom&names=Jerry)
MultipartFile文件上傳 (multipart)POST /upload (enctype="multipart/form-data")必須設(shè)置enctype="multipart/form-data"
PUT/PATCH所有類型JSON/XML請求體PUT /user { "name": "Tom" } → public String updateUser(User user)默認(rèn)按@RequestBody處理,需顯式加注解才能覆蓋
DELETE基本類型/StringURL查詢參數(shù)DELETE /user?id=123 → public String deleteUser(Long id)與GET相同
POJO對象不支持-DELETE通常只用路徑參數(shù)或簡單查詢參數(shù)

關(guān)鍵規(guī)則總結(jié)

GET/DELETE 請求

  • 參數(shù)默認(rèn)綁定到 URL查詢字符串?key=value)。
  • POJO對象會按字段名自動拆解到查詢參數(shù)。

POST 請求

  • 默認(rèn)按 表單數(shù)據(jù)application/x-www-form-urlencoded)解析。
  • 若請求頭為 Content-Type: application/json,則需顯式加 @RequestBody,否則綁定失敗。

PUT/PATCH 請求

  • 默認(rèn)按請求體(JSON/XML)處理,類似@RequestBody行為,但實(shí)際開發(fā)中建議顯式加注解。

特殊類型

  • MultipartFile:僅在 multipart/form-data 類型的POST中自動綁定。
  • 數(shù)組/集合:支持URL查詢參數(shù)(GET)或表單同名參數(shù)(POST)。

常見誤區(qū)澄清

表單數(shù)據(jù)不會放在請求頭

  • 請求頭僅用于元數(shù)據(jù)(如Content-Type、Authorization等),表單內(nèi)容一定在請求體。

GET請求能否帶表單數(shù)據(jù)?

  • ? 不能。GET請求的參數(shù)只能通過URL查詢字符串(?key=value)傳遞,且長度受限。

不加注解時(shí)Spring Boot如何綁定表單數(shù)據(jù)?

  • 默認(rèn)按參數(shù)名匹配請求體中的表單字段(需參數(shù)名與表單字段名一致)。

POST JSON vs 表單數(shù)據(jù)

  • JSON數(shù)據(jù)必須顯式使用@RequestBody,而表單數(shù)據(jù)默認(rèn)綁定(無需注解)。

4.HTTP請求參數(shù)位置自定義控制對照表

參數(shù)位置Spring Boot注解手動提取方式適用場景示例請求
URL路徑參數(shù)@PathVariableHttpServletRequest.getRequestURI()RESTful資源標(biāo)識GET /users/123 → id=123
URL查詢參數(shù)@RequestParamrequest.getParameter("name")過濾條件、分頁GET /users?name=Tom → name=Tom
請求頭@RequestHeaderrequest.getHeader("Authorization")認(rèn)證令牌、客戶端信息Header: Authorization: Bearer xxx
請求體(JSON)@RequestBodyInputStream + JSON解析庫復(fù)雜數(shù)據(jù)提交POST /users + {"name":"Tom"}
請求體(表單)@RequestParamrequest.getParameterMap()傳統(tǒng)表單提交POST /login + username=Tom&password=123
請求體(文件)@RequestPartMultipartHttpServletRequest文件上傳POST /upload + multipart/form-data
Cookie@CookieValuerequest.getCookies()會話管理Cookie: sessionId=abc123

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何解決Could not transfer artifact org.springframework.boot問題

    如何解決Could not transfer artifact org.spri

    在Maven更新過程中遇到“Could not transfer artifact org.springframework.boot”錯(cuò)誤通常是由于網(wǎng)絡(luò)問題,解決方法是在Maven的設(shè)置中忽略HTTPS,添加特定語句后,可以正常下載依賴,但下載速度可能較慢,這是一種常見的解決方案,希望對遇到相同問題的人有所幫助
    2024-09-09
  • SpringBoot之Java配置的實(shí)現(xiàn)

    SpringBoot之Java配置的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot之Java配置的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • Springboot logback-spring.xml無法加載問題

    Springboot logback-spring.xml無法加載問題

    這篇文章主要介紹了Springboot logback-spring.xml無法加載問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Spring?Boot如何處理@Resource示例分析

    Spring?Boot如何處理@Resource示例分析

    這篇文章主要為大家介紹了Spring?Boot如何處理@Resource示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • druid執(zhí)行SQL出現(xiàn)錯(cuò)誤但不影響返回結(jié)果的問題及解決

    druid執(zhí)行SQL出現(xiàn)錯(cuò)誤但不影響返回結(jié)果的問題及解決

    這篇文章主要介紹了druid執(zhí)行SQL出現(xiàn)錯(cuò)誤但不影響返回結(jié)果的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Springboot如何集成jodconverter做文檔轉(zhuǎn)換

    Springboot如何集成jodconverter做文檔轉(zhuǎn)換

    這篇文章主要介紹了Springboot如何集成jodconverter做文檔轉(zhuǎn)換問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Spring Boot 快速入門指南

    Spring Boot 快速入門指南

    Spring 框架是非常著名的 Java 開源框架,歷經(jīng)十多年的發(fā)展,整個(gè)生態(tài)系統(tǒng)已經(jīng)非常完善甚至是繁雜,Spring Boot 正是為了解決這個(gè)問題而開發(fā)的,為 Spring 平臺和第三方庫提供了開箱即用的設(shè)置,只需要很少的配置就可以開始一個(gè) Spring 項(xiàng)目
    2017-03-03
  • Spring Data JPA使用Sort進(jìn)行排序(Using Sort)

    Spring Data JPA使用Sort進(jìn)行排序(Using Sort)

    本篇文章主要介紹了Spring Data JPA使用Sort進(jìn)行排序(Using Sort),具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-07-07
  • Java之Runnable啟動線程的使用方式

    Java之Runnable啟動線程的使用方式

    這篇文章主要介紹了Java之Runnable啟動線程的使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Java常用加密算法實(shí)例總結(jié)

    Java常用加密算法實(shí)例總結(jié)

    這篇文章主要介紹了Java常用加密算法,結(jié)合實(shí)例形式總結(jié)分析了base64、md5、sha、rsa、des等加密算法實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-10-10

最新評論