Springboot GET和POST请求的常用参数获取方式

GET

使用@RequestParam注解

可以在控制器方法的参数上使用@RequestParam注解来获取请求中的参数值。例如:

复制代码
@GetMapping("/example")
public String example(@RequestParam String param) {
    // 使用param参数的值
    return "Value of param: " + param;
}

可以为@RequestParam注解的参数提供默认值,以处理参数缺失的情况。例如:

复制代码
@GetMapping("/example")
public String example(@RequestParam(defaultValue = "default") String param) {
    // 使用param参数的值,如果参数未提供,则使用默认值"default"
    return "Value of param: " + param;
}

可以使用@RequestParam Map<String, String>来获取所有的请求参数键值对。例如:

复制代码
@GetMapping("/example")
public String example(@RequestParam Map<String, String> params) {
    String param = params.get("param");
    // 使用param参数的值
    return "Value of param: " + param;
}

使用@PathVariable注解

如果参数是作为路径的一部分传递的,可以使用@PathVariable注解来获取参数值。例如:

复制代码
@GetMapping("/example/{param}")
public String example(@PathVariable String param) {
    // 使用param参数的值
    return "Value of param: " + param;
}

使用HttpServletRequest对象

可以在控制器方法的参数列表中添加HttpServletRequest对象,然后从中获取请求参数。例如:

复制代码
@GetMapping("/example")
public String example(HttpServletRequest request) {
    String param = request.getParameter("param");
    // 使用param参数的值
    return "Value of param: " + param;
}

使用@ModelAttribute注解

可以使用@ModelAttribute注解来将请求参数绑定到一个自定义对象中。例如:

复制代码
@GetMapping("/example")
public String example(@ModelAttribute MyObject myObject) {
    String param = myObject.getParam();
    // 使用param参数的值
    return "Value of param: " + param;
}

POST

使用@RequestParam注解

可以在控制器方法的参数上使用@RequestParam注解来获取请求体中的参数值。默认情况下,@RequestParam用于获取表单数据。例如:

复制代码
@PostMapping("/example")
public String example(@RequestParam String param) {
    // 使用param参数的值
    return "Value of param: " + param;
}

可以使用@RequestParam Map<String, String>来获取所有的请求参数键值对。这对于处理不固定参数的情况很有用。例如:

复制代码
@PostMapping("/example")
public String example(@RequestParam Map<String, String> params) {
    String param = params.get("param");
    // 使用param参数的值
    return "Value of param: " + param;
}

使用@RequestBody注解

如果请求体是JSON或其他格式的数据,可以使用@RequestBody注解将请求体映射到一个自定义对象中。例如:

复制代码
@PostMapping("/example")
public String example(@RequestBody MyObject myObject) {
    String param = myObject.getParam();
    // 使用param参数的值
    return "Value of param: " + param;
}

使用HttpServletRequest对象

可以在控制器方法的参数列表中添加HttpServletRequest对象,然后从中获取请求参数。这对于处理复杂的请求体非常有用。例如:

复制代码
@PostMapping("/example")
public String example(HttpServletRequest request) {
    String param = request.getParameter("param");
    // 使用param参数的值
    return "Value of param: " + param;
}

使用@ModelAttribute注解

与POST请求中的表单数据一起使用@ModelAttribute注解,将请求参数绑定到一个自定义对象中。例如:

复制代码
@PostMapping("/example")
public String example(@ModelAttribute MyObject myObject) {
    String param = myObject.getParam();
    // 使用param参数的值
    return "Value of param: " + param;
}

类似于@RequestParam Map,也可以使用@ModelAttribute注解的Map参数来获取请求参数键值对。例如:

复制代码
@PostMapping("/example")
public String example(@ModelAttribute("myObject") Map<String, String> params) {
    String param = params.get("param");
    // 使用param参数的值
    return "Value of param: " + param;
}
相关推荐
h7ml3 分钟前
查券返利机器人的OCR识别集成:Java Tesseract+OpenCV优化图片验证码的自动解析方案
java·机器人·ocr
野犬寒鸦5 分钟前
从零起步学习并发编程 || 第五章:悲观锁与乐观锁的思想与实现及实战应用与问题
java·服务器·数据库·学习·语言模型
Volunteer Technology9 分钟前
Sentinel的限流算法
java·python·算法
VX:Fegn08959 分钟前
计算机毕业设计|基于springboot + vue云租车平台系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
岁岁种桃花儿11 分钟前
SpringCloud从入门到上天:Nacos做微服务注册中心
java·spring cloud·微服务
jdyzzy11 分钟前
什么是 JIT 精益生产模式?它与传统的生产管控方式有何不同?
java·大数据·人工智能·jit
Chasmれ16 分钟前
Spring Boot 1.x(基于Spring 4)中使用Java 8实现Token
java·spring boot·spring
汤姆yu18 分钟前
2026基于springboot的在线招聘系统
java·spring boot·后端
计算机学姐43 分钟前
基于SpringBoot的校园社团管理系统
java·vue.js·spring boot·后端·spring·信息可视化·推荐算法
Coder_Boy_1 小时前
基于SpringAI的在线考试系统-企业级教育考试系统核心架构(完善版)
开发语言·人工智能·spring boot·python·架构·领域驱动