SpringBoot中Get请求和POST请求接收参数示例详解

2024-12-31 03:50

本文主要是介绍SpringBoot中Get请求和POST请求接收参数示例详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《SpringBoot中Get请求和POST请求接收参数示例详解》文章详细介绍了SpringBoot中Get请求和POST请求的参数接收方式,包括方法形参接收参数、实体类接收参数、HttpServle...

1、Get请求

1.1 方法形参接收参数 这种方式一般适用参数比较少的情况,并且前后端参数名称必须保持一致

@RestController
@RequestMapping("/user")
@Slf4j
public class DemoController {
    @GetMapping("/query")
    public void getStudent(String name,String age) {
        log.info("name:{}",name);
        log.info("age:{}",age);
    }
}

参数用 @RequestParam 标注,使用value属性指定参数名,required属性表示这个参数是否必传

@RestController
@RequestMapping("/user")
php@Slf4j
public class DemoController {
    @GetMapping("/query")
    public void getStudent(@RequestParam(value = "name", required = false) String name,
                           @RequestParam(value = "age", required = false) String age) {
        log.info("name:{}",name);
China编程        log.info("age:{}",age);
    }
}

1.2 实体类接收参数

注意:Get 请求以实体类接收参数时,不能用 RequestParam 注解进行标注,因为不支持这样的方式获取参数。

@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {
    @GetMapping("/query")
    public void getStudent(Student student) {
        log.info("naChina编程me:{}",student.getName());
        log.info("age:{}",student.getAge());
    }
}
@Data
class Student{
    private String name;
    private Integer age;
}

1.3 通过HttpServletRequest接收参数

@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {
    @GetMapping("/query")
    public void getStudent(HttpServletRequest request) {
        String name = request.getParameter("name");
        String phone = request.getParameter("age");
        log.info("name:{}",name);
        log.info("age:{}",age);
    }
}

1.4 通过@PathVariable接收参数

@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {
    @GetMapping("/query/{name}/{age}")
    public void getStudent(@PathVariable String name, @PathVariable String age) {
        log.info("name:{}",name);
        log.info("age:{}",age);
    }
}

1.5 接收数组参数

@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {
    @GetMapping("/query")
    public void getStudent(String[] names) {
        Arrays.stream(names).forEach(System.out::println);
    }
}

1.6 接受集合参数

注意:SpringBoot 接收集合参数,必须用 @RequestParam 注解声明!

@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {
    @GetMapping("/query")
    public void getStudent(@RequestParam List<String> names) {
        names.forEach(System.out::println);
    }
}

2、POST请求

2.1 方法形参接收参数 前后端参数名称必须保持一致

@RestController
@RequestMapping("/user")
@Slf4j
public class DemoController {
    @PostMapping("/save")
    public void saveStudent(String name,String age) {
        log.info("name:{}",name);
        log.info("age:{}",age);
    }
}

参数用 @RequestParam 标注,使用value属性指http://www.chinasem.cn定参数名,required属性表示这个参数是否必传

@RestController
@RequestMapping("/user")
@Slf4j
public class DemoController {
    @PostMapping("/save")
    public void saveStudent(@RequestParam(value = "name", required = false) String name,
                           @RequestParam(value = "age", required = false) String age) {
        log.info("name:{}",name);
        log.info("age:{}",age);
    }
}

2.2 通过HttpServletRequest接收参数

@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {
    @PostMapping("/save")
    public void saveStudent(HttpServletRequest request) {
        String name = request.getParameter("name");
        String phone = request.getParameter("age");
        log.info("name:{}",name);
        log.info("age:{}",age);
    }
}

2.3 通过@PathVariable接收参数

@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {
    @PostMapping("/save/{name}/{age}")
    public void saveStudent(@PathVariable String name, @PathVariable String age) {
        log.info("name:{}",name);
        log.info("age:{}",age);
    }
}

2.4 通过param方式提交参数,以实体类接收参数

直接以实体类可以接收param、form-data、 x-www-form-urlencoded 提交的参数

@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {
    @PostMapping("/save")
    public void saveStudent(Student student) {
        log.info("name:{}",student.getName());
        log.info("age:{}",student.getAge());
    }
}
@Data
class Student{
    private String name;
    private Integer age;
}

2.5 请求体以JSON格式提交参数,通过 @RequestBody 注解接收参数

接受实体类JSON参数

@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {
    @PostMapping("/save")
    public void saveStudent(@RequestBody Student student) {
        log.info("name:{}",student.getName());
        log.info("age:{}",student.getAge());
    }
}
@Data
class Student{
    private String name;
    private Integer age;
}

接收数组或者集合类JSON参数

@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {
    @PostMapping("/save")
    public void saveStudent(@RequestBody String[] names) {
        Arrays.stream(names).forEach(System.out::println);
    }
    @PostMapping("/save")
    public void saveStudent(@RequestBody List<String> names) {
        names.forEach(System.out::println);
    }
}

2.6 通过 Map 接收参数

@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {
    @PostMapping("/save")
    public void saveStudent(@RequestParam Map<String,Object> map) {
        log.info("name:{}",map.get("name"));
        log.info("age:{}",map.get("age"));
    }
}

2.7 通过@RequestBody 接收一个参数

@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {
    @PostMapping("/save")
    public void saveStudent(@RequestBody String name) {
        log.info("name:{}",name);
    }
}

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

这篇关于SpringBoot中Get请求和POST请求接收参数示例详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

Java.lang.InterruptedException被中止异常的原因及解决方案

《Java.lang.InterruptedException被中止异常的原因及解决方案》Java.lang.InterruptedException是线程被中断时抛出的异常,用于协作停止执行,常见于... 目录报错问题报错原因解决方法Java.lang.InterruptedException 是 Jav

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

Java Stream流之GroupBy的用法及应用场景

《JavaStream流之GroupBy的用法及应用场景》本教程将详细介绍如何在Java中使用Stream流的groupby方法,包括基本用法和一些常见的实际应用场景,感兴趣的朋友一起看看吧... 目录Java Stream流之GroupBy的用法1. 前言2. 基础概念什么是 GroupBy?Stream

python中列表应用和扩展性实用详解

《python中列表应用和扩展性实用详解》文章介绍了Python列表的核心特性:有序数据集合,用[]定义,元素类型可不同,支持迭代、循环、切片,可执行增删改查、排序、推导式及嵌套操作,是常用的数据处理... 目录1、列表定义2、格式3、列表是可迭代对象4、列表的常见操作总结1、列表定义是处理一组有序项目的

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

C++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3