HTTP 与 SpringBoot 参数提交与接收协议方式

 更新时间:2025年07月26日 11:16:38   作者:Full Stack Developme  
HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据请求方法和Content-Type差异,SpringBoot通过特定注解如@RequestParam、@RequestBody实现数据获取,本文介绍HTTP与SpringBoot参数提交与接收协议方式,感兴趣的一起看看

HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Type)。

以下是主要的参数提交协议:

1. URL 查询参数 (Query Parameters)

  • 请求方法: GET (也可用于其他方法)
  • 格式: ?key1=value1&key2=value2
  • 示例: GET /users?id=123&name=John
  • 获取方式:
    • SpringBoot: @RequestParam
    • Servlet: request.getParameter()

2. 表单提交 (Form Data)

  • 请求方法: POST (也可用于 PUT/PATCH)
  • Content-Type: application/x-www-form-urlencoded 或multipart/form-data
  • 格式:
    • application/x-www-form-urlencodedkey1=value1&key2=value2 (类似查询参数但在请求体中)
    • multipart/form-data: 用于文件上传,包含边界分隔符
  • 示例:
<form action="/submit" method="post" enctype="application/x-www-form-urlencoded">
  <input name="username" value="John">
  <input type="submit">
</form>
  • 获取方式:
    • SpringBoot: @RequestParam 或 @ModelAttribute
    • Servlet: request.getParameter()

3. JSON 请求体 (JSON Payload)

  • 请求方法: POST/PUT/PATCH/DELETE
  • Content-Type: application/json
  • 格式: JSON 对象
  • 示例:
{
  "name": "John",
  "age": 30
}
  • 获取方式:
    • SpringBoot: @RequestBody
    • Servlet: 通过 request.getReader()读取输入流

4. XML 请求体 (XML Payload)

  • 请求方法: POST/PUT/PATCH/DELETE
  • Content-Type: application/xml或 text/xml
  • 格式: XML 文档
  • 示例:
<user>
  <name>John</name>
  <age>30</age>
</user>
  • 获取方式:
    • SpringBoot: @RequestBody 配合 XML 解析器
    • Servlet: 通过 request.getReader() 读取输入流

5. RESTful 路径参数 (Path Variables)

  • 请求方法: 任意方法
  • 格式: /resource/{id}
  • 示例: GET /users/123
  • 获取方式:
  • SpringBoot: @PathVariable
  • Servlet: 需要手动解析 URL

6. HTTP 头部参数 (Headers)

  • 位置: HTTP 头部
  • 示例:
Authorization: Bearer token123
Accept-Language: en-US
  • 获取方式:
  • SpringBoot: @RequestHeader
  • Servlet: request.getHeader()

7. Cookie 参数

  • 位置: HTTP Cookie 头部
  • 示例:
Cookie: sessionId=abc123; username=John
  • 获取方式:
  • SpringBoot: @CookieValue
  • Servlet: request.getCookies()

8. GraphQL 查询

  • 请求方法: POST/GET
  • Content-Type: application/json (通常)
  • 格式: GraphQL 查询语言
  • 示例:
{
  "query": "{ user(id: 123) { name age } }"
}
  • 获取方式: 需要专门的 GraphQL 处理器

9. WebSocket 参数

  • 协议: WebSocket
  • 格式: 自定义,通常为 JSON 或二进制
  • 获取方式: 通过 WebSocket API 处理

10. Server-Sent Events (SSE)

  • 协议: HTTP 长连接
  • Content-Type: text/event-stream
  • 格式: 特定的事件流格式
  • 获取方式: 通过专门的 SSE 客户端处理

总结表

提交方式典型 Content-Type主要用途SpringBoot 注解
URL 查询参数-GET 请求简单参数@RequestParam
表单数据application/x-www-form-urlencoded传统表单提交@RequestParam@ModelAttribute
多部分表单multipart/form-data文件上传@RequestPart
JSON 请求体application/jsonREST API 复杂数据@RequestBody
XML 请求体application/xml传统 XML 接口@RequestBody
路径参数-RESTful URL 设计@PathVariable
HTTP 头部-认证、语言偏好等@RequestHeader
Cookie-会话管理、用户追踪@CookieValue

到此这篇关于HTTP 与 SpringBoot 参数提交与接收协议方式的文章就介绍到这了,更多相关http与springboot参数提交内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java的动态代理和静态代理详解

    Java的动态代理和静态代理详解

    这篇文章主要为大家详细介绍了Python实现学生成绩管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 解决RedisTemplate存储至缓存数据出现乱码的情况

    解决RedisTemplate存储至缓存数据出现乱码的情况

    这篇文章主要介绍了解决RedisTemplate存储至缓存数据出现乱码的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Java实现AES加密算法的简单示例分享

    Java实现AES加密算法的简单示例分享

    这篇文章主要介绍了Java实现AES加密算法的简单示例分享,AES算法是基于对密码值的置换和替代,需要的朋友可以参考下
    2016-04-04
  • 详解Java 10 var关键字和示例教程

    详解Java 10 var关键字和示例教程

    在本文中,我将通过示例介绍新的Java SE 10特性——“var”类型。你将学习如何在代码中正确使用它,以及在什么情况下不能使用它,需要的朋友可以参考下
    2018-10-10
  • Java中如何利用Set判断List集合中是否有重复元素

    Java中如何利用Set判断List集合中是否有重复元素

    在开发工作中,我们有时需要去判断List集合中是否含有重复的元素,这时候我们不需要找出重复的元素,我们只需要返回一个 Boolean 类型就可以了,下面通过本文给大家介绍Java中利用Set判断List集合中是否有重复元素,需要的朋友可以参考下
    2023-05-05
  • java正则替换括号中的逗号实现示例

    java正则替换括号中的逗号实现示例

    本文主要介绍了java正则替换括号中的逗号实现示例,主要介绍了两种示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-01-01
  • libsvm支持向量机回归示例

    libsvm支持向量机回归示例

    这篇文章主要介绍了libsvm支持向量机回归示例,需要的朋友可以参考下
    2014-05-05
  • idea快速实现将SpringBoot项目打包Docker镜像并部署

    idea快速实现将SpringBoot项目打包Docker镜像并部署

    本文主要介绍了idea快速实现将SpringBoot项目打包Docker镜像并部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • 基于springboot redirect重定向路径问题总结

    基于springboot redirect重定向路径问题总结

    这篇文章主要介绍了springboot redirect重定向路径问题总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • JSON中fastjson、jackson、gson如何选择

    JSON中fastjson、jackson、gson如何选择

    在Java中,JSON的解析方式很多,例如fastjson(阿里)、Gson(谷歌)、jackjson等,本文主要介绍了JSON中fastjson、jackson、gson如何选择,具有一定的参考价值,感兴趣的可以了解一下
    2021-12-12

最新评论