自制笔记 | JavaWeb——Postman请求方式(持续更新...)

本文介绍了在SpringBoot中处理HTTP请求参数的不同方式,包括简单参数、实体参数(如POJO)、数组和集合参数、日期参数、JSON参数以及路径参数,展示了如何利用SpringBoot简化参数映射和类型转换过程。
摘要由CSDN通过智能技术生成

1.简单参数:

① 原始方式(了解即可)

在原始的web程序中,获取请求参数,需要通过HttpServletRequest对象手动获取

@RestController
public class RequestController {
    @RequestMapping("/simpleParam")
    public String simpleParam(HttpServletRequest request) {
        //获取请求参数
        String name = request.getParameter("name");
        String ageStr = request.getParameter("age");

        int age = Integer.parseInt(ageStr);
        System.out.println(name + ":" + age);
        return "OK";
    }
}

② SpringBoot方式

参数名与形参变量名相同,定义形参即可接收参数,会自动发生类型转换

@RestController
public class RequestController {
    @RequestMapping("/simpleParam")
    public String simpleParam(String name, Integer age) {
        System.out.println(name + ":" + age);
        return "OK";
    }
}

对应于Postman的两种方式:

GET:

image-20240310192203252

POST:

POST方式

如果方法形参名称与请求参数名称不匹配,可以使用@RequestParam完成映射

@RestController
public class RequestController {
    @RequestMapping("/simpleParam")
    public String simpleParam(@RequestParam(name = "name")String username, Integer age) {
        System.out.println(username + ":" + age);
        return "OK";
    }
}

注意:@RequestParam中的required属性默认为true,代表该请求参数必须传递,如果不传递将报错。如果该参数是可选的,可以将required属性设置为false

2.实体参数:

① 简单实体对象: 请求参数名与形参对象属性名相同,定义POJO接收即可

image-20240310192448393

@RequestMapping("/simplePojo")
public String simplePojo(User user) {
    System.out.println(user);
    return "OK";
}
public class User {
    private String name;
    private Integer age;
}

② 复杂实体对象:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数

复杂实体对象

@RequestMapping("/complexPojo")
public String complexPojo(User user) {
    System.out.println(user);
    return "OK";
}
public class User {
    private String name;
    private Integer age;
    private Address address;
}
public class Address {
    private String province;
    private String city;
}

3.数组集合参数

① 数组参数:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数

数组参数

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

② 集合参数:请求参数名与形参集合名称相同且请求参数为多个,**@RequestParam**绑定参数关系,用于区分集合和数组

image-20240310192503360

@RequestMapping("/listParam")
public String listParam(@RequestParam List<String> hobby) {
    System.out.println(hobby);
    return "OK";
}

4.日期参数

使用@DateTimeFormat注释完成日期参数格式转换

image-20240310192711659

@RequestMapping("/dateParam")
public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime) {
    System.out.println(updateTime);
    return "OK";
}

5.Json参数

Json数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用RequestBody标识

image-20240310192514283

@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody User user) {
    System.out.println(user);
    return "OK";
}
public class User {
    private String name;
    private Integer age;
    private Address address;
}
public class Address {
    private String province;
    private String city;
}

6.路径参数

通过请求URL直接传递参数,使用{...}来标识该路径参数,需要使用PathVariable获取路径参数

路径参数

@RequestMapping("path/{id}")
public String pathParam(@PathVariable Integer id) {
    System.out.println(id);
    return "OK";
}

多个路径参数:

直接在URL后加上多的参数即可

image-20240310192525938

@RequestMapping("path/{id}/{name}")
public String pathParam2(@PathVariable Integer id, @PathVariable String name) {
    System.out.println(id + name);
    return "OK";
}
  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值