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";
    }
相关推荐
卡戎-caryon11 分钟前
【C++】15.并发支持库
java·linux·开发语言·c++·多线程
头发那是一根不剩了1 小时前
怎么用idea分析hprof文件定位JVM内存问题
java·jvm
让代码飞~1 小时前
maven项目, idea右上角一直显示gradle的同步标识, 如何去掉
java·maven·intellij-idea
张扬飞舞1 小时前
IntelliJ IDEA克隆项目失败的解决方法
java·ide·intellij-idea
一只码代码的章鱼1 小时前
spring -MVC-02
java·spring·mvc
ziyue75751 小时前
idea启用lombok
java·intellij-idea·idea·lombok·软件
程序员爱钓鱼1 小时前
匿名函数与闭包(Anonymous Functions and Closures)-《Go语言实战指南》原创
后端·golang
tmacfrank2 小时前
Java 原生网络编程(BIO | NIO | Reactor 模式)
java·开发语言·网络
python算法(魔法师版)2 小时前
.NET NativeAOT 指南
java·大数据·linux·jvm·.net
专注VB编程开发20年2 小时前
VB.NET关于接口实现与简化设计的分析,封装其他类
java·前端·数据库