SpringBoot请求响应

目录

一、简单参数

原始方式(过于繁琐了解即可)

SpringBoot方式

二、实体参数

 三、数组集合参数

四、日期参数

五、JSON参数

六、路径参数


一、简单参数

原始方式(过于繁琐了解即可)

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

   @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";
    }
  1. public String simpleParam(HttpServletRequest request):这是一个公共方法,返回类型为String。它接收一个HttpServletRequest类型的参数,用于获取HTTP请求的信息。

  2. String name=request.getParameter("name");:从HTTP请求中获取名为"name"的参数值,并将其赋值给变量name

  3. int age=Integer.parseInt(ageStr);:将字符串类型的ageStr转换为整数类型,并赋值给变量age

SpringBoot方式

简单参数:参数名与形参变量名相同,定义形参即可接收参数。

 @RequestMapping("/simpleParam")
    public String simpleParam(String name,Integer age){
        System.out.println(name+","+age);
        return "ok";
    }

如果请求参数名 不一致,会导致接收失败,但是不会报错。 可以使用@RequestParam来完成映射。

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

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

二、实体参数

User实体类代码如下:

package com.example.demo.pojo;

public class User {
    private String name;
    private Integer age;

    public User(String name, Integer age) {
        this.name = name;
        this.age = age;
    }

    public User() {
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

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

@RequestMapping("/simplePojo")
    public String simplePojo(User user){
        System.out.println(user);
        return "ok";
    }

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

 三、数组集合参数

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

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

集合参数:请求参数名与形参集合名称相同且请求参数为多个,@RequestParam绑定参数关系,默认情况下多个值封装在数组中。

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

四、日期参数

日期参数:使用@DateTimeFormat注解完成日期参数格式转换,指定前端传递日期的格式。

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

五、JSON参数

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

@RequestMapping("/jsonParam")
    public String jsonParam(@RequestBody User user){
        System.out.println(user);
        return "ok";
    }

六、路径参数

路径参数:通过请求URL直接传递参数,使用{...}来表示该路径参数,需要使用@PathVariable获取路径参数。(可获取多个参数,直接在后面添加/{...}/{...})

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

相关推荐

  1. SpringBoot数据请求响应

    2024-06-17 12:16:03       45 阅读
  2. http请求响应,结合springboot

    2024-06-17 12:16:03       32 阅读
  3. SparingBoot高级-数据交换格式-请求响应

    2024-06-17 12:16:03       41 阅读
  4. ChatGPT:SpringBoot 响应请求是串行还是并行?

    2024-06-17 12:16:03       18 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-17 12:16:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-17 12:16:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-17 12:16:03       82 阅读
  4. Python语言-面向对象

    2024-06-17 12:16:03       91 阅读

热门阅读

  1. SVG in VSCode: A Comprehensive Guide

    2024-06-17 12:16:03       32 阅读
  2. vscode 创建一个测试单个js文件的项目

    2024-06-17 12:16:03       33 阅读
  3. 网络命令大全windows linux

    2024-06-17 12:16:03       29 阅读
  4. vue前端-静态资源下载小坑记录

    2024-06-17 12:16:03       35 阅读
  5. QComboBox使用详解(Qt)

    2024-06-17 12:16:03       31 阅读
  6. 小程序wx:if 和hidden的区别?

    2024-06-17 12:16:03       31 阅读
  7. R语言自定义vlookup函数

    2024-06-17 12:16:03       28 阅读
  8. Spark 面试题(六)

    2024-06-17 12:16:03       29 阅读