SpringBoot简单入门

SpringBoot入门

请求响应概述

在这里插入图片描述

BS架构:客户端只需要浏览器,逻辑和数据都在服务端
CS架构:需要单独安装对应的客户端

请求参数

简单请求参数

原始方式

通过HTTPServeletRequest对象手动获取

@RestController
public class RequestController {

    @RequestMapping("/sampleParam")
    public String simpleParam(HttpServletRequest request){
        String name = request.getParameter("name");
        String age = request.getParameter("age");

        System.out.println(name + age);
        return "OK";
    }
}
SpringBoot简化

只需要保证形参名和前端参数名一致即可

@RestController
public class RequestController {
    
    @RequestMapping("/sampleParam")
    public String simpleParam(String name, String age) {
        System.out.println(name + age);
        return "OK";
    }
}
@RequestParam注解实现前端参数和形式参数的映射
@RestController
public class RequestController {
    
    @RequestMapping("/sampleParam")
    public String simpleParam(@RequestParam (name = "name")String username, String userage) {
        System.out.println(name + age);
        return "OK";
    }
}

通过POJO对象接收参数

只需要保证前端参数名与POJO对象属性名一致即可自动实现参数的接收和转换
例如:定义User类,且需要实现get方法和set方法

package com.vanffer.POJO;

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

    public String getName() {
        return name;
    }

    public Integer getAge() {
        return age;
    }

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

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

在接收参数时只需要传入User对象就可以实现参数的接收和转换

@RestController
public class RequestController {
    @RequestMapping("/sampleParam")
    public String simpleParam(User user) {
        System.out.println(user.getName() + ": " + user.getAge());
        return "OK";
    }
}

复杂实体对象接收参数

后端代码与简单POJO对象一致,只需要前端分别传参即可。
例如:http://localhost:8080/sampleParam?name=TOM&age=10&address.province=江西&address.city=赣州

数组参数

只需要在控制器方法中传入数组对象即可,数组名需要与前端参数名相同
例如:对于http://localhost:8080/arrayParam?hobby=drawing&hobby=game&hobby=reading ,只需要通过如下方法即可实现参数的接收

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

集合参数

传入List对象,List对象名要求与参数名保持一致,并使用@RequestParam绑定参数关系
例如:对于http://localhost:8080/listParam?hobby=drawing&hobby=game&hobby=reading ,只需要通过如下方法即可实现参数的接收

@RequestMapping("/listParam")
public String listParam(@RequestParam List<String> hobby) {
	return hobby.toString();
}

时间类型参数

采用@DateTimeFormat注解指定时间格式,然后传入与前端参数同名的LocalDateTime类型形参。
例如,对于http://localhost:8080/dateParam?updateTime=2023-08-01 12:00:00

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

JSON参数

前端通过POST请求在请求体中传递参数。
JSON数据的键名与后端形参对象的属性名保持一致,使用@RequestBody标识实现JSON参数与POJO形参的对应
例如传入JSON参数为

{
    "name":"TOM",
    "age":10,
    "address":{
        "province":"江西",
        "city":"赣州"
    }
}
@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody User user){
	System.out.println(user);
	return user.toString();
}

路径参数

参数同时作为url中路径的一部分,在@RequestMapping指定可变参数,然后在形参前使用@PathVariable注解

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

响应

@ResponseBody
类型:方法注解、类注解
位置:Controller方法上/类上
作用:将方法返回值直接响应,如果返回值类型是实体对象/集合,会转成JSON格式响应
@RestController = @Controller + @ResponseBody

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值