请求响应-请求-简单参数&实体参数

请求响应-请求-简单参数&实体参数

简单参数:简单参数指的是在请求服务端的时候传递的是普通的请求数据,比如下图发起了一个get请求,get请求路径的后面携带了两个参数,一个是name,一个是age。

  • 我们该如何接受这两个请求参数?
    • 原始方式:

在这里插入图片描述

  • 先创建springboot web项目(具体创建方法:链接: http://t.csdnimg.cn/IgTwe),然后创建RequestController类
    在这里插入图片描述
package com.csdn.controller;


import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.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方式:
    • get方式:
      在这里插入图片描述
      在这里插入图片描述
package com.csdn.controller;


import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.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方法
    @RequestMapping("/simpleParam")
    public String simpleParam(String name,Integer age){
        System.out.println(name+":"+age);
        return "ok";


    }
}

在这里插入图片描述

post方式:

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

请求参数名和形参不一致会怎么样?
参数能对应上就会接收,参数对应不上就不会接收,但是不会报错。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
参数名对应不上也可以接收
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
注意事项 @RequestParam中的required属性默认为true,代表该请求参数必须传递,如果不传递将报错。 如果该参数是可选的,可以将required属性设置为false。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解决办法:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

实体参数

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

在这里插入图片描述
在这里插入图片描述

package com.csdn.pojo;

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


    public User() {
    }

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

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return age
     */
    public Integer getAge() {
        return age;
    }

    /**
     * 设置
     * @param age
     */
    public void setAge(Integer age) {
        this.age = age;
    }

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

定义一个方法:
在这里插入图片描述

package com.csdn.controller;


import com.csdn.pojo.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

/*
* 测试请求参数接受的
*
* */


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

点击启动如下图
在这里插入图片描述
来到postman点击Send
在这里插入图片描述
在这里插入图片描述
需要注意的是请求参数名与形参对象属性名相同

在这里插入图片描述
在这里插入图片描述

  • 复杂实体对象:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数
    在这里插入图片描述
    在这里插入图片描述
package com.csdn.pojo;

public class Address {
    private String province;
    private String city;

    public Address() {
    }

    public Address(String province, String city) {
        this.province = province;
        this.city = city;
    }

    /**
     * 获取
     * @return province
     */
    public String getProvince() {
        return province;
    }

    /**
     * 设置
     * @param province
     */
    public void setProvince(String province) {
        this.province = province;
    }

    /**
     * 获取
     * @return city
     */
    public String getCity() {
        return city;
    }

    /**
     * 设置
     * @param city
     */
    public void setCity(String city) {
        this.city = city;
    }

    public String toString() {
        return "Address{province = " + province + ", city = " + city + "}";
    }
}

在这里插入图片描述

package com.csdn.pojo;

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


    public User() {
    }

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

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return age
     */
    public Integer getAge() {
        return age;
    }

    /**
     * 设置
     * @param age
     */
    public void setAge(Integer age) {
        this.age = age;
    }

    /**
     * 获取
     * @return address
     */
    public Address getAddress() {
        return address;
    }

    /**
     * 设置
     * @param address
     */
    public void setAddress(Address address) {
        this.address = address;
    }

    public String toString() {
        return "User{name = " + name + ", age = " + age + ", address = " + address + "}";
    }
}

在RequestController中定义一个方法:
在这里插入图片描述

package com.csdn.controller;


import com.csdn.pojo.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

/*
* 测试请求参数接受的
*
* */
@RestController
public class RequestController {
  


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

启动一下服务:
在这里插入图片描述
打开postman:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zkzap

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值