当前位置: 首页 > news >正文

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

1、Get请求

1.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); }

    }

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

    @RestController
    @RequestMapping(“/user”)
    @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); log.info("age:{}",age); }

    }

1.2 实体类接收参数

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

@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @GetMapping("/query") public void getStudent(Student student) { log.info("name:{}",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 方法形参接收参数

  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); }

    }

  2. 参数用 @RequestParam 标注,使用value属性指定参数名,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 注解接收参数

  1. 接受实体类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;
    }

  2. 接收数组或者集合类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); } }
http://www.jsqmd.com/news/450393/

相关文章:

  • SpringBoot Maven 项目 pom 中的 plugin 插件用法整理
  • springboot+全局异常处理
  • Android跨平台开发与硬件适配技术全景解析
  • Flutter 三方库 personnummer 的鸿蒙化适配指南 - 掌控身份资产、精密编号治理实战、鸿蒙级校验专家
  • python flask的老年人个人健康管理vue统计图
  • SpringBoot后端服务重定向
  • Springboot中mybatis的使用
  • Springboot中SLF4J详解
  • 5G NR PUSCH开环功控
  • GPT系列技术演进:从单向建模到多模态世界的架构革新
  • springboot和springframework版本依赖关系
  • springboot与springcloud以及springcloudalibaba版本对照
  • springboot+mybaties项目中扫描不到@mapper注解的解决方法
  • Photoroom 2026.10.08 | 法国大厂出品,高质量无限AI生图,最强电商作图
  • Flutter 三方库 sync 的鸿蒙化适配指南 - 掌控分布式同步资产、精密一致性治理实战、鸿蒙级全场景专家
  • 第十章 重新设计
  • 2026年湖北抖音短视频代运营公司推荐榜单TOP5公布 - 精选优质企业推荐榜
  • 从 10 万人里随机抽 10 个,怎么做最快?
  • 基于Java+SSM+Flask政府项目管理平台(源码+LW+调试文档+讲解等)/政府项目/管理平台/项目管理软件/政务管理/公共项目/项目监管/项目管理工具/项目追踪/项目控制系统/政府工程
  • C语言:2026.3.8
  • springboot与springcloud对应版本
  • 联合省选2026游记 | 跟我学一辈子OI
  • 基于Java+SSM+Flask个人消费管理系统(源码+LW+调试文档+讲解等)/个人财务管理/消费记录软件/个人支出管理系统/消费追踪工具/个人消费分析工具/理财软件/消费管理软件/个人账目管理系统
  • AI时代人人都是产品经理:避坑指南:AI 时代做产品,90% 的人都会踩的 3 个认知误区
  • SpringBoot实战(三十二)集成 ofdrw,实现 PDF 和 OFD 的转换、SM2 签署OFD
  • springboot中@PostConstruct注解使用详解
  • 2026年宁夏抖音短视频代运营服务商5强推荐名单公布 - 精选优质企业推荐榜
  • 智慧乡村管理系统项目。将 DeepSeek 大模型 接入传统的 Spring Boot + Vue 业务系统,实现了从“信息化管理”到“智能化服务”
  • MATLAB Simulink 卷积码
  • 鸿蒙应用开发工程师:技术深度与职业发展全景解析