SpringBoot 获取请求参数的常用注解及用法

2025-08-25 23:50

本文主要是介绍SpringBoot 获取请求参数的常用注解及用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C...

SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数

以下是主要的注解及其用法:

1.@RequestParam

用于获取查询参数(URL 参数),适用于 GET 请求或 POST 表单提交。

@GetMapping("/user")
public String getUser(@RequestParam("id") Long userId) {
    return "User ID: " + userId;
}
// 可选参数,设置默认值
@GetMapping("/search")
public String search(@RequestParam(value = "q", required = false, defaultValue = "") String query) {
    return "Search: " + query;
}

2.@PathVariable

用于获取 URL 路径中的变量。

@GetMapping("/user/{id}")
public String getUser(@PathVariable("id") Long userId) {
    return "User ID: " + userId;
}
// 当变量名与方法参数名相同时可省略
@GetMapping("/article/{slug}")
public String getArticle(@PathVariable String slug) {
    return "Article: " + slug;
}

3.@RequestBody

用于获取请求体中的 jsON/XML 数据,通常用于 POST/PUT 请求。

@PostMapping("/user")
public String createUser(@RequestBody User user) {
    return "Created user: " + user.getName();
}

4.@RequestHeader

用于获取 HTTP 请求头中的值。

@GetMapping("/info")
public String getInfo(@RequestHeader("User-Agent") String userAgent) {
    return "User Agent: " + userAgent;
}

5.@CookieValue

用于获取 HTTP 请求中的 Cookie 值。

@GetMapping("/home")
public String home(@CookieValue("JSESSIONID") String sessionId) China编程{
    return "Sessjavascription ID: " + sessionId;
}

6.@ModelAttribute

用于绑定请求参数到模型对象,适用于表单提交。

@PostMapping("/register")
public String register(@ModelAttribute User user) {
    return "Registered: " + user.getName();
}

7.@RequestPart

用于处理 multipart/form-data 请求中的文件上传。

@PostMapping("/upload")
public String uploadFile(@RequestPart("file") MultipartFile file) {
    return "Uploaded: " + file.getOriginalFilename();
}

8. 直接使用 Servlet API

SpringBoot 也支持直接使用 Servlet API 对象:

@GetMapping("/example")
public String example(HttpServletRequest request, HttpServletResponse response) {
    String param = request.getParameter("param");
    return "Parameter: " + param;
}

9. 获取所有参数

@RequestParam Map获取所有查询参数

@GetMapping("/params")
public String getAllParams(@RequestParam Map<String, String> allParams) {
    return "All params: " + allParams.toString();
}

@RequestParam MultiValueMap获取可能有多个值的参数

@GetMapping("/multiParams")
public String getMultiParams(@RequestParam MultiValueMap<String, String> params) {
    return "Multi params:android " + params.toString();
}

10. 参数绑定到对象

SpringBoot 支持自动将请求参数绑定到 Java 对象:

@GetMapping("/filter")
public String filterUsers(UserFilter filter) {
    return "Filtering by: " + filter.toString();
}
// UserFilter 类示例
public class UserFilter {
    private String name;
    private Integer age;
    // getters and setters
}

注意事项

请求示例:/filter?name=John&China编程;age=25

  • 大多数注解都有 required 和 defaultValue 属性可以配置
  • 对于复杂嵌套对象,SpringBoot 也能自动绑定
  • 参数名称默认会与方法参数名匹配,除非在注解中指定
  • 可以通过配置 spring.mvc.hiddenmethodhttp://www.chinasem.cn.filter.enabled=true 来支持 PUT/DELETE 等方法的表单提交

到此这篇关于SpringBoot 获取请求参数的常用注解的文章就介绍到这了,更多相关SpringBoot 请求参数注解内容请搜索编程China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!

这篇关于SpringBoot 获取请求参数的常用注解及用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1155867

相关文章

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

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工

Java中如何正确的停掉线程

《Java中如何正确的停掉线程》Java通过interrupt()通知线程停止而非强制,确保线程自主处理中断,避免数据损坏,线程池的shutdown()等待任务完成,shutdownNow()强制中断... 目录为什么不强制停止为什么 Java 不提供强制停止线程的能力呢?如何用interrupt停止线程s

SpringBoot请求参数传递与接收示例详解

《SpringBoot请求参数传递与接收示例详解》本文给大家介绍SpringBoot请求参数传递与接收示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录I. 基础参数传递i.查询参数(Query Parameters)ii.路径参数(Path Va

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

Java MCP 的鉴权深度解析

《JavaMCP的鉴权深度解析》文章介绍JavaMCP鉴权的实现方式,指出客户端可通过queryString、header或env传递鉴权信息,服务器端支持工具单独鉴权、过滤器集中鉴权及启动时鉴权... 目录一、MCP Client 侧(负责传递,比较简单)(1)常见的 mcpServers json 配置

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示