当前位置: 首页 > news >正文

SpringMVC系列(四)(请求处理的十个实验(下))

0 引言

作者正在学习SpringMVC相关内容,学到了一些知识,希望分享给需要短时间想要了解SpringMVC的读者朋友们,想用通俗的语言讲述其中的知识,希望与诸位共勉,共同进步!

本系列会持续更新!!可以放心食用!

1 十个请求处理实验中的后五个

1.1 实验六 POJO级联封装复杂属性

首先我们现根据实验六的内容先填写相关内容,点击注册:

并看一下发送的请求为Get类型,我们先来看一下它的请求地址后面带的参数:

1)username=Lin&password=1234&cellphone=12345

2)&address.province=福建省&address.city=厦门市&address.area=翔安区

3)&hobby=足球&hobby=篮球

4)&sex=男

5)&grade=一年级&agreement=on

我们发现1/4/5行都是简单类型属性;第二行是一个需要封装成一个POJO对象(因为是.出来的);第三行需要封装成一个数组,这样的一个复杂的POJO类型,后端应该怎么样来接这个数据呢?

首先必须要先写一个POJO对象来封装他们:

import lombok.Data;@Data
public class People {//基础属性private String username;private String password;private String cellphone;private boolean agreement;private String sex;private String grade;//POJO对象private Address address;//数组private String[] hobby;}@Data
class Address {private String province;private String city;private String area;
}

然后编写Comtroller代码:

    @RequestMapping(value = "/handle06")public String handle06(People people){System.out.println(people);return "ok!!!";}

随后进行测试:

网页端:

后端:

1.2 实验七 @RequestBody注解接收JSON格式数据

实验七让我们自己使用postman进行传输JSON格式的数据,

首先编写后端java代码(需要带上注解@RequestBody,表明前端传进来的数据是JSON格式的):

    @RequestMapping(value = "/handle07")public String handle07(@RequestBody People people){System.out.println(people);return "ok!!!";}

我们就拿实验六中的数据,进行JSON格式的封装(JSON格式的数据如下,省的大伙儿再打一遍了):

{

    "username":"小林学编程",

    "password":"123456",

    "cellphone":"1234567",

    "agreement":"true",

    "sex":"男",

    "hobby":["篮球","足球"],

    "address":{

        "province":"福建省",

        "city":"厦门市",

        "area":"翔安区"

    }

}

随后打开postman进行测试:

进行测试:

postman端:

后端:

1.3 实验八 文件上传

进入实验八:

当我们发送注册请求时:

看F12中的请求体中的数据,有两个是图片文件:

要想后端收到文件可以这么写,使用MultipartFile类进行接收:

    @RequestMapping(value = "/handle08")public String handle08(People people,@RequestParam("headerImg") MultipartFile headerImg,@RequestParam("lifeImg") MultipartFile lifeImg) throws IOException {//获得原始文件名String headerImgName = headerImg.getOriginalFilename();// 保存图片到本地headerImg.transferTo(new File("D:\\"+headerImgName));return "ok!!!";}

并将文件保存至我的D盘当中。

测试;

网页端:

文件是否导入D盘中:

1.4 实验九 HttpEntity获得整个请求头和请求体

前面我们分别测试了单独获得请求头和请求体的内容,我们有没有一种方法两种都能获得呢?有的兄弟有的,那就是HttpEntity类,java代码可以这样写:

    @RequestMapping(value = "/handle09")public String handle09(HttpEntity<People> httpEntity){//获得请求头System.out.println("请求头" + httpEntity.getHeaders());//获得请求体System.out.println("请求体" + httpEntity.getBody());return "ok!!!";}

注意:HttpEntity<People>中的泛型指的是请求体中的数据类型!

然后使用postman发出请求:

测试结果:

postman端:

终端:

1.5 实验十 传入原生API(不推荐)

如果你是一个怀旧的人,可以使用原生的web处理API进行调用(这种方法不推荐,有更好的工具为啥不用)

    @RequestMapping(value = "/handle10")public String handle10(HttpServletRequest request, HttpServletResponse  response) throws IOException {//进行原始的操作return "ok!!!";}

具体的操作留给读者自己去写具体的操作,本篇不再重复。

2 十个实验的测试代码

如果大家也不想敲代码的话,那就可以直接在我的gitee地址里面下载十个实验的测试代码:

lin/请求测试十个实验https://gitee.com/lin2002wei/Request_code

参考:

P96-P100

100.请求处理 -实验10:传入原生API_哔哩哔哩_bilibili

相关文章:

  • LabVIEW疲劳试验机模糊PID
  • 人工智能-基础篇-3-什么是深度学习?(DL,卷积神经网络CNN,循环神经网络RNN,Transformer等)
  • 华为云Flexus+DeepSeek征文|高可用部署 Dify 平台构建 Flux 绘画中台 Chatflow 的设计与实现
  • Android11 wifi开启源码分析
  • SQl中多使用EXISTS导致多查出了一条不符合条件的数据
  • 设计模式之房产中介——代理模式
  • redisTemplate简单实现幂等性校验
  • 机器人 URDF学习笔记
  • 51单片机教程(十三)- 单片机串口通信
  • mac docker desktop 安装 oracle
  • 并发基础7(守护线程)
  • Python基础知识之文件
  • 快慢指针深度解析
  • NV025NV033美光固态闪存NV038NV040
  • 机器人领域EI论文写作突围指南:从创新点到技术落地的关键跨越
  • 工厂“智能指挥家”上线,富唯智能调度系统让机器人高效协作
  • 车载通信架构 --- ECU刷写与busoff原则
  • VSCode中创建和生成动态库项目
  • vue3+element-plus,实现两个表格同步滚动
  • RabbitMQ RPC模式Python示例