当前位置: 首页 > 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

http://www.lqws.cn/news/545473.html

相关文章:

  • 多模态融合相机L3CAM
  • 高斯过程动态规划(GPDP)
  • 免费无广告PDFCreator:虚拟打印软件一键转 PDF/PNG/JPG
  • printf和scanf
  • 问卷调查[bell ring]
  • 全志A733、瑞芯微RK3576与联发科MTK8371场景化应用解析在物联网与智能设备快速迭代的今天,芯片作为硬件核心直接决定了设备的性能边界与应用场景。
  • moduo之tcp客户端TcpClient
  • Webpack 自定义插件开发指南:构建流程详解与实战开发全攻略
  • Html5播放器禁止拖动播放器进度条(教学场景)
  • 神经网络的概念和案例
  • FrozenBatchNorm2d 详解
  • 聚铭网络入选嘶吼《中国网络安全细分领域产品名录》“云平台安全管理”与“态势感知”双领域TOP10
  • Linux tcp_info:监控TCP连接的秘密武器
  • CatBoost:征服类别型特征的梯度提升王者
  • 蓝牙工作频段与跳频扩频技术(FHSS)详解:面试高频考点与真题解析
  • System.Threading.Tasks 库简介
  • ubuntu ollama 遇到的若干问题
  • Linux命令行操作基础
  • WPF 3D 开发全攻略:实现3D模型创建、旋转、平移、缩放
  • 记录一个C#/.NET的HTTP工具类
  • Feign 实战指南:从 REST 替代到性能优化与最佳实践
  • 文法、正规式相关习题
  • Linux系统(信号篇)信号的保存
  • WinAppDriver 自动化测试:JavaScript 篇
  • gRPC技术解析与python示例
  • Python基础知识之文件
  • JMH (Java Microbenchmark Harness)
  • .NET MAUI跨平台串口通讯方案
  • (LeetCode 面试经典 150 题 ) 238. 除自身以外数组的乘积 (前缀和)
  • LeetCode 312 戳气球题解(Swift)+ 区间 DP 原理详解 + 可运行代码