SpringBoot获取请求参数

spring boot获取请求参数

文章目录

开头概述

在Spring Boot框架中,处理HTTP请求并获取请求参数是开发Web应用程序中的一项基本任务。无论是简单的GET请求还是复杂的POST请求,Spring Boot都提供了多种灵活且高效的方法来获取请求参数。这些方法不仅简化了代码,还提高了开发效率和代码的可读性。

本文将从简单参数获取、实体参数绑定、数组和集合参数处理、日期参数解析、JSON参数接收以及路径参数传递等多个方面,详细介绍如何在Spring Boot中获取请求参数。通过实例代码和详细解释,让读者能够快速掌握这些技巧,并在实际开发中灵活运用。

一、简单参数

1. 原始方式

在原始的web程序,通过HttpServletRequest 对象手动获取

例如请求url为:http://localhost:8080/testParam?name=jack\&age=12

java 复制代码
    @RequestMapping("/testParam")
    public String testParam(HttpServletRequest request){
        String name = request.getParameter("name");
        String ageStr = request.getParameter("age");
        int age = Integer.parseInt(ageStr);
        System.out.println(name+" : "+age);
        return "OK";
    }

可以看到获取到的参数都是String类型变量,其他类型的变量还需要自己手动转换一下,比较繁琐。

2. spring boot方式(自动类型转换)

spring boot支持自动类型转换,使用方法如下:
public String 方法名(类型1 变量名1,类型1 变量名1,···)

java 复制代码
    @RequestMapping("/testParam1")
    public String testParam1(String name, Integer age){
        System.out.println(name+" : "+age);
        return "OK";
    }

可以发现,代码非常简洁,极大的减少了代码量。
注意:方法形参名必须和请求参数名称一致 (形参名==请求参数名)

3. 方法形参名必须和请求参数名不一致(@RequestParam注解)

java 复制代码
    @RequestMapping("/testParam2")
    public String testParam2(@RequestParam(name = "name") String username, Integer age){
        System.out.println(username+" : "+age);
        return "OK";
    }

二、实体参数

简单的实体对象:

java 复制代码
	public class User {
    	private String name;
    	private Integer age;
	}

复杂的实体对象

java 复制代码
public class Address {
    String province;
    String city;
}
public class User {
    private String name;
    private Integer age;
    private Address address;
}

请求的参数名和对象的属性名保持一致(参数名==属性名)

java 复制代码
    @RequestMapping("/testPojo")
    public String testPojo(User user){
        System.out.println(user);
        return "OK";
    }

三、数组集合参数

1. 使用数组接收参数

java 复制代码
    @RequestMapping("/arrayParam")
    public String arrayParam(String[] hobby){
        System.out.println(Arrays.toString(hobby));
        return "OK";
    }

2. 使用集合接收参数

java 复制代码
    @RequestMapping("/arrayParam")
    public String arrayParam(String[] hobby){
        System.out.println(Arrays.toString(hobby));
        return "OK";
    }

四、日期参数

使用**@DateTimeFormat**注解调整数据格式

java 复制代码
    @RequestMapping("/dataParam")
    public String dataParam(@DateTimeFormat(pattern = "yyy-MM-dd HH:mm:ss")LocalDateTime time){
        System.out.println(time);
        return "OK";
    }

五、Json参数

JSON数据键名 形参对象属性名需保持相同,定义POJO类型形参可以接收参数,需要使用**@RequestBody**注解标识

java 复制代码
    @RequestMapping("/jsonParam")
    public String jsonParam(@RequestBody User user){
        System.out.println(user);
        return "OK";
    }

六、路径参数

通过url直接传递参数,比如http://localhost:8080/path/1

java 复制代码
    @RequestMapping("/path/{id}")
    public String jsonParam(@PathVariable Integer id){
        System.out.println(id);
        return "OK";
    }

结尾总结

​ 综上所述,Spring Boot为开发者提供了多种便捷的方式来获取HTTP请求中的参数。从原始的通过HttpServletRequest对象手动获取,到Spring Boot自动类型转换和注解支持,每一步都体现了Spring框架的易用性和灵活性。

​ 无论是处理简单的基本类型参数,还是复杂的实体对象、数组集合、日期格式以及JSON数据,Spring Boot都提供了相应的解决方案。此外,通过路径参数传递方式,还可以直接在URL中嵌入参数,进一步丰富了参数传递的手段。

​ 掌握这些技巧,不仅能够提升开发效率,还能使代码更加简洁和易于维护。在实际开发中,可以根据具体需求选择合适的方法来获取请求参数,从而构建出更加健壮和高效的Web应用程序。

希望本文能够帮助读者更好地理解和运用Spring Boot获取请求参数的相关知识,为Web开发之路打下坚实的基础。

相关推荐
Warren983 小时前
Vue2博客项目笔记(第一天)
java·开发语言·javascript·vue.js·windows·笔记·ecmascript
Charles Wesley3 小时前
11:java学习笔记:1D array(1维数组)
java·笔记·学习·eclipse
王者鳜錸3 小时前
VUE+SPRINGBOOT从0-1打造前后端-前后台系统-邮箱重置密码
前端·vue.js·spring boot
stillaliveQEJ4 小时前
【JavaEE】多线程(一)
java·java-ee
present--014 小时前
【JAVA EE初阶】多线程(下)
java·java-ee
jakeswang4 小时前
去哪儿StarRocks实践
starrocks·后端
字节逆旅5 小时前
从一次爬坑看前端的出路
前端·后端·程序员
Chan166 小时前
【智能协同云图库】第七期:基于AI调用阿里云百炼大模型,实现AI图片编辑功能
java·人工智能·spring boot·后端·spring·ai·ai作画
mitt_6 小时前
go语言变量
开发语言·后端·golang
无限大67 小时前
二维数组搜索:从暴力地毯到二分神技的奇幻之旅
后端