15人参与 • 2026-08-03 • Java
当前后端分离已成为主流开发模式,前端如何向后端传递参数,是每个 spring boot 开发者必须掌握的技能。
本文将带你快速掌握 spring 中最常见的四种参数接收方式,并通过简单示例一一拆解它们的使用场景与差异。
在正式介绍注解之前,我们先快速了解一下 http 请求的数据结构。
一个典型的 http 请求由三部分组成:
四种注解的本质就是从这些不同部分中提取参数。
spring boot 接收前端数据的常见方式包括:
@pathvariable:用于接收 url 路径中的参数;@requestparam:用于接收查询参数或表单数据;@requestheader:用于接收请求头中的信息;@requestbody:用于接收 json 或 xml 格式的请求体数据。后文将依次介绍这四种方式的使用方法及适用场景。
用于接收 url 路径中的变量,例如 /user/{id}。常用于 restful 风格接口。
示例:
@getmapping("/user/{id}")
public string getuser(@pathvariable long id) {
return "user id: " + id;
}
用于接收请求头中的参数,常用于读取 token、user-agent 等。
示例:
@getmapping("/device")
public string getdevice(@requestheader("user-agent") string useragent) {
return "user-agent: " + useragent;
}
用于接收 url 中的查询参数或表单提交的数据,常见于 get 或表单 post 请求。
示例:
@getmapping("/search")
public string search(@requestparam string keyword) {
return "searching: " + keyword;
}
对于 get 请求,查询参数拼接在 url 路径后;对于 content-type 为 application/x-www-form-urlencoded 的 post 请求,表单数据以键值对形式编码放在请求体中。
使用 @requestparam 注解可以方便地接收这两类参数。
用于接收请求体中的 json 或 xml 数据,通常用于 post/put 请求配合实体类使用。
示例:
@postmapping("/login")
public string login(@requestbody user user) {
return "welcome " + user.getusername();
}
get 请求没有请求体,不能使用 @requestbody 接收参数。对于 content-type 为 application/json 的 post/put 请求,@requestbody 可用于接收请求体中的 json 数据。
一个方法中只能有一个 @requestbody 注解,通常使用 java bean、dto 或 map 来接收整体结构化数据。
本文通过示例梳理了 spring boot 接收前端数据的四种常用注解。选用哪种方式,取决于你的业务场景和前端的请求结构:
@pathvariable@requestparam@requestheader@requestbody掌握这些基础注解,能够帮助你更高效地开发 web 接口,构建清晰、规范的 api。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论