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.pswp.cn/news/912551.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/912551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

产线通信“变形记”:PROFIBUS-DP与ETHERNET/IP的食品饮料跨界融合

在食品饮料加工行业&#xff0c;为实现不同设备间高效通信&#xff0c;JH-PB-EIP疆鸿智能PROFIBUS DP转ETHERNET/IP网关发挥着关键作用。西门子PLC常采用PROFIBUS DP协议&#xff0c;而码垛机器人等设备多使用ETHERNET/IP协议&#xff0c;网关成为连接二者的桥梁。 将DP作为从站…

设计模式-观察者模式(发布订阅模式)

一、需要的类 一个发布类&#xff1a;里面一个是别人需要订阅的属性&#xff0c;以及用于存储订阅者的list&#xff0c;attach方法是往list集合里面添加元素&#xff0c;notifyObservers通知方法&#xff0c;也就是循环调用订阅者里面的一个方法&#xff0c;这个notifyObserve…

Linux测试是否能联网

ping百度看是否有返回包&#xff1a; ping www.baidu.com ping -c可以通过参数提前设置发送的包数量&#xff1a; ping -c 4 www.baidu.com 终止ping快捷键&#xff1a; 按下 Ctrl C&#xff1a;立即终止ping进程&#xff0c;并显示统计信息。按下 Ctrl Z&#xff1a;将进…

TOGAF® 架构分区:优秀架构的秘密

TOGAF &#xff08;The Open Group架构框架&#xff09;已成为企业架构事实上的全球标准, 是世界上使用最广泛的企业架构框架。 它为企业 IT 架构的设计、规划、实施和管理提供了一套全面的方法和工具。但是&#xff0c;即使是经验丰富的架构师也经常会忽略 TOGAF 中隐藏的宝…

如何让视频在特定的网站上播放/禁止播放?(常见的视频防盗链技术之一)

一、需求背景 在各行各业中,不论是教育、贸易还是医疗领域,视频内容都存在被盗用的风险。为加强视频安全性,我们可以采取特殊设置措施,例如限制视频仅在高安全性网站播放,或屏蔽高风险网站。那么,具体有哪些方法可以有效保护视频安全呢? 二、需求解决 通过OVP防盗链技…

如何调鼠标的灵敏度 快速调节超简单

鼠标灵敏度是指鼠标在移动时&#xff0c;指针在屏幕上移动的速度。适当的鼠标灵敏度不仅能够提高工作效率&#xff0c;还能减少手部疲劳&#xff0c;优化游戏体验。那么不同的使用场景&#xff0c;鼠标灵敏度怎么调呢&#xff1f;本文将详细探讨如何调整鼠标灵敏度&#xff0c;…

基于单次常规脑MRI的深度学习检测多发性硬化症急性和亚急性病变活动性|文献速递-最新论文分享

Title 题目 Deep learning detection of acute and sub-acute lesion activity from single-timepoint conventional brain MRI in multiple sclerosis 基于单次常规脑MRI的深度学习检测多发性硬化症急性和亚急性病变活动性 01 文献速递介绍 多发性硬化症&#xff08;MS&am…

CloudFormation 实现 GitHub Actions OIDC 与 AWS ECR 的安全集成

引言:现代 CI/CD 的安全挑战 在容器化应用部署流程中,传统长期凭证管理已成为主要安全痛点。本文将详细介绍如何通过 AWS CloudFormation 实现 GitHub Actions 与 Amazon ECR 的安全集成,利用 OIDC(OpenID Connect)技术消除长期凭证风险,构建符合企业级安全标准的 CI/CD…

JMeter常用断言方式

简介 接口断言是接口测试中用于验证响应结果是否符合预期的关键机制&#xff0c;根据业务需求编写脚本添加断言&#xff0c;可验证接口的正确性。以下内容仅记录常用的断言方式&#xff0c;多个接口都有断言时可以使用事务控制器来隔离不同的断言。 断言方式 1、响应断言 1.…

web服务器搭建nginx

1 配置主机ip 1.1获取主机ip ip a rootpc:/home/ruxin# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft foreve…

ubuntu ollama 遇到的若干问题

服务器原先有ollama&#xff0c;想要重装&#xff0c;遇到一系列问题 安装下载连接&#xff1a;https://github.com/ollama/ollama/blob/main/docs/linux.md模型下载链接&#xff1a;https://ollama.com/library/deepseek-r1:1.5b 一、安装新的ollama 在root用户下操作 1.卸…

Linux: errno: EMSGSIZE 5

最近看到一个envoy在发送UDP包时返回的错误:sendmsg failed with error code 5 这里的error code 5其实是,envoy自己定义的error code: case SOCKET_ERROR_MSG_SIZE:return IoErrorCode::MessageTooBig;class IoError {public:enum class

深度剖析 LNK 参数隐藏攻击 (ZDI-CAN-25373)

1、漏洞描述 ZDI-CAN-25373 是一个 Windows 快捷方式文件(.LNK)漏洞,它允许攻击者通过精心制作的恶意快捷方式文件来执行隐藏的恶意命令。攻击者通过在 .LNK 文件的 COMMAND_LINE_ARGUMENTS 结构中填充大量空白字符(如空格、水平制表符、换行符等)来隐藏恶意命令。这些填…

Linux操作系统笔记3

接口管理命令&#xff1a; ip命令 字符终端 nmcli命令 字符终端 nmtui命令 可视化终端 ip命令&#xff1a; 使用 ip 命令可以配置临时网络的连接信息&#xff0c;相关命令如下&#xff1a; ip link&#xff1a;显示网络设备运行状态 ip -s link&#xff1a;显示更详细的设备信…

Vue3 根据路由配置实现动态菜单

前言 最近在学习Vue3的相关语法&#xff0c;在阅读官方文档的时候觉得官方文档的菜单栏比较简洁美观&#xff0c;于是想着能不能自己实现一个类似的多级菜单。代码大部分由AI所做&#xff08;感谢活在这个人工智能时代&#xff09;。 设计 主要就是路由设计以及菜单设计 路…

C#中 Winform如何实现跨页面调用

设计页面 如下 其中Form2为启动项 当点击订阅消息的时候 会创建Form1页面 当 Form1页面的点击发送的时候 自动将发送的消息同步到label1中 Form2的代码如下 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using S…

一个完整的Python解决方案,用于使用机器学习筛选最优模型并分析纳米酶特征与Km/Vmax的相关性

以下是一个完整的Python解决方案,用于使用机器学习筛选最优模型并分析纳米酶特征与Km/Vmax的相关性。代码包含数据预处理、模型选择、特征相关性分析和结果可视化,并附带详细注释。 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn…

用python可视化南方大暴雨及洪水数据分析

用python可视化南方大暴雨及洪水数据分析 截至20250621,南方地区(特别是广东、广西、湖南等地)遭遇的极端暴雨和洪水灾害&#xff0c;斑点鱼将使用Python进行数据分析和可视化&#xff0c;展示洪水影响区域、雨势强度以及经济损失等情况。 数据搜集如下&#xff1a; import …

DeepSPV:一个用于从二维超声图像进行三维脾脏体积估算的深度学习流程|文献速递-最新论文分享

Title 题目 DeepSPV: A deep learning pipeline for 3D spleen volume estimation from 2D ultrasound images DeepSPV&#xff1a;一个用于从二维超声图像进行三维脾脏体积估算的深度学习流程 01 文献速递介绍 1.1 临床背景 脾肿大&#xff0c;即脾脏增大&#xff0c;是…

PHP在做爬虫时的解决方案

爬虫不是一个小众的场景,所以无论是哪个语言,都有很多相应的生态库.这里介绍一下PHP的技术方案和代码量。 关键能力 对页面的解析能力 PHP的官方扩展中有Dom扩展,但是我建议使用electrolinux/phpquery这个库,他相当于一个PHP版的JQ. 算上加载文件,只要三行就能获取title标签…