Spring MVC入门2

Postman的使用

接上期我们抛出了一个问题,Postman的使用
可以点击链接下载 https://www.postman.com/downloads/
在这里插入图片描述
安装之后会提示版本升级,直接点击dissmiss即可。

要想发送数据,具体歩奏如下简图:

在这里插入图片描述
还有一个更具体的图,可以先了解一下,里面的请求参数以后会说。在这里插入图片描述

但是要注意,一定要先启动IDEA项目再发送,不然怎么可能有结果呢。
我拿上一次的代码来发送一下,此时我是已经启动了idea里的项目的,所以结果是正常的,但是如果你不启动,那肯定是不正常的。

在这里插入图片描述

学习Spring MVC的第二个重点——请求

访问不同的路径, 就是发送不同的请求. 在发送请求时, 可能会带⼀些参数, 所以学习Spring的请求, 主要是学习如何传递参数到后端以及后端如何接收.
传递参数, 咱们主要是使⽤浏览器和Postman来模拟.

传递单个参数

先说一下我们的基本报错信息:
404:找不到资源,多半是服务器,或者URL不正确。
400:类型不匹配
500:参数少传了

  • 传参的歩奏如下:我们先用网址的方式传参(能使用网址传参都能用Postman传参,只是这里先用网址的方式实现一下)。如下,在问号后面的就是我们传递的参数。记住要名称一致,如果不一致,会报400状态码

在这里插入图片描述

传递多个参数

在这里插入图片描述

当有多个参数时,前后端进⾏参数匹配时,是以参数的名称进⾏匹配的,此时由于我们传递的参数的名称和形参是一致的,因此参数的位置是不影响后端获取参数的结果,所以我们将name和id交换位置也不会错
在这里插入图片描述
其实也能构成类似重载的效果
在这里插入图片描述

传递数组

此时,由于数组不同于普通参数,此时我们就可以用Postman来传递参数了

在这里插入图片描述
Postman里的KEY要和我们传递的参数要一致不然就会不匹配,相当于不能给这个参数赋值,于是他就默认为null了
在这里插入图片描述

但是我们有什么方法能让参数名称和我们传递的KEY不一样也能传过去吗,当然有方法:我们只需要使用@RequestParam注解
某些特殊的情况下,前端传递的参数 key 和我们后端接收的 key 可以不⼀致,⽐如前端传递了⼀个array2 给后端,⽽后端是使⽤ array 字段来接收的,这样就会出现参数接收不到的情况,如果出现
这种情况,我们就可以使⽤ @RequestParam 来重命名前后端的参数值.
在这里插入图片描述

传递对象

有人会好奇对象怎么传,其实也就是挨个将属性传递就行了,无论顺序咋样,我们的KEY 始终是和形参保持一致的,不用担心顺序的问题。
在这里插入图片描述
下面是Person的代码,比叫简单,有兴趣的可以直接复制,去尝试一下

public class Person {private int id;private String name;private String password;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "Person{" +"id=" + id +", name='" + name + '\'' +", password='" + password + '\'' +'}';}
}
传递集合

需要使用到@RequestParam注解。
和数组类似, 同⼀个请求参数名有为多个, 且需要使⽤ @RequestParam 绑定参数关系默认情况下,请求中参数名相同的多个值,是封装到数组. 如果要封装到集合,要使⽤@RequestParam 绑定参数关系
在这里插入图片描述
如果不使用这个注解,就会报出500:
在这里插入图片描述
由于以上的传递对象的方式比较复杂,下一期我们将会介绍传递对象的另一种方法,JSON数据表示法。

遗留问题的解答@RequestMapping是支持post还是get

如果你将上面的例子都试过了,那么你就能有了自己说动验证这个问题的能力了。
验证歩奏如下
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
通过切换后,我们发现它即能支持get又能支持post。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/47172.shtml

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

相关文章

使用GDAL(C++库)从末尾行开始向上读取图像数据

使用GDAL(C库)从末尾行读取图像数据 OpenCV等图像库默认的读取方式都是从第一行开始,逐行读取数据(自顶向下),填充到内存缓冲区;对于某些特殊应用,需要反行序读取(从末尾…

朴素模式匹配算法与KMP算法(非重点)

目录 一. 朴素模式匹配算法1.1 什么是字符串的匹配模式1.2 朴素模式匹配算法1.3 通过数组下标实现朴素模式匹配算法 二. KMP算法2.1 算法分析2.2 用代码实现(只会出现在选择题,考察代码的概率不大) 三. 手算next数组四. KMP算法的进一步优化4…

Python + Playwright(21):拦截网络请求

Python + Playwright(21):拦截网络请求 前言什么是路由(Route)?使用示例基础拦截配置使用正则表达式模式自定义处理函数注意事项总结前言 在进行自动化测试,当网页加载时,我们经常会遇到页面上存在大量非核心内容,这些内容可能并不直接影响我们的测试目标。为了优化加…

新手学习AIGC的步骤与图谱

学习人工智能和生成式对话模型(Artificial Intelligence and Generative Conversational Models)是一项令人兴奋且具有挑战性的任务!以下是一些我认为可行的学习步骤和路径: 初学者学习AIGC的步骤: 掌握基础知识&#…

在AWS创建一台Windows主机并登录

正文共:1111 字 21 图,预估阅读时间:1 分钟 因为之前微软云Azure免费,我们还做了简单的测试(白嫖党618福利!来Azure领200美刀!外加云主机免费用一年!);并且通…

k8s核心操作_存储抽象_K8S中使用Secret功能来存储密码_使用免密拉取镜像_k8s核心实战总结---分布式云原生部署架构搭建033

注意在看的时候一定要把 dxxxx中的xxxx换成--o----c----k----e----r 然后我们再来看一个k8s中的secret的功能,这个功能 用来存储密码的,configMap是用来存配置的 比如我们有个pod,他的镜像,如果是需要密码的,那么 我们现在是从公共仓库拉取的,如果我们从私有仓库拉取,有密码…

Github 2024-07-13 Rust开源项目日报 Top10

根据Github Trendings的统计,今日(2024-07-13统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10C项目1Zed: 由Atom和Tree-sitter的创建者开发的高性能多人代码编辑器 创建周期:1071 天开发语言:Rust协议类型:OtherStar数量:94…

python 请求https api, header参数的设置

在Python中发送HTTPS请求并设置header参数,可以使用requests库。requests库是一个方便发送HTTP请求的第三方库,支持发送GET、POST等请求,同时还支持设置header参数。 首先,确保你已经安装了requests库,可以使用以下命…

从 Icelake 到 Iceberg Rust

本文作者丁皓是Databend 研发工程师,也是 ASF Member, Apache OpenDAL PMC Chair ,主要研究领域包括存储、自动化与开源。 太长不看 Icelake 已经停止更新,请改用 iceberg-rust。 Iceberg-rust 是一个由社区驱动的项目&#xff0…

自动化创建 AWS RDS 实例告警

在管理 AWS RDS 数据库实例时,设置适当的监控和告警是至关重要的。本文将介绍如何使用 Python 和 AWS SDK (boto3) 自动化创建 RDS 实例的 CloudWatch 告警。 背景 对于大规模的 RDS 部署,手动为每个实例创建告警既耗时又容易出错。通过自动化这个过程,我们可以确保所有符…

《0基础》学习Python——第十六讲

《文件读写》 一、什么是文件读写 文件读写是指在Python程序中对文件进行读取和写入操作。通过文件读写,可以读取文件中的数据,或者向文件中写入数据。 Python提供了多种文件读写的方式,其中最常用的方式是使用open()函数打开一个文件&#…

深入理解Android中的缓存与文件存储目录

🌟 引言 在Android应用开发中,合理管理应用的数据存储至关重要。应用可能需要保存各种类型的数据,从简单的配置信息到多媒体文件,甚至是缓存数据以提高性能和用户体验。Android提供了多个内置目录来满足这些需求,但它…

kubernetes集群环境搭建(二)

kubernetes集群类型 kubernetes集群大体上分为两类:一主多从和多主多从 一主多从:一台Master节点和多台Node节点,搭建简单,但有单机故障风险,适合于测试环境部署多主多从:多台Matser节点和多台Node节点&…

MyBatis的原理?

MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数及获取结果集。MyBatis可以通过简单的XML或注解来配置和映射原生类型、接口和Java的POJOs(Plain Old Java Objects)为…

linux中导出sql脚本

linux中导出sql脚本 前言: 需要将数据库xx表导出sql脚本、数据迁移、数据备份… 执行命令 1. 导出整个数据库的数据 -- username: 是数据库的用户名 -- database_name: 是要导出数据的数据库名 -- dump_file.sql: 是导出的 SQL 文件名,你可以自己定义…

策略模式原理与C++实现

定义 定义一些列算法,把他们一个个封装起来,并且使他们可以相互替换(变化)。该模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展、子类化)。 C实现 在不考虑策略模式的情况…

js基础-小数计算,并转换成带两位的百分比

小数计算,并转换成带两位的百分比 1、需求说明2、执行过程2.1 计算 s12.2 计算 s2 1、需求说明 在工作中,有时需要将计算的小数转换成百分比小数,但是在js代码中,计算公式一点点的区别就会影响到最终的结果,如下面代码…

vue视频、图片自动轮播并伴随进度条

废话不多说直接上代 多余没用的部分自己看着删除 <template><div class"showImg"><el-carousel ref"carousel" trigger"hover" :autoplay"false" class"dimControl" :height"${(currenInnerWith*0.37…

极速提升性能:Laravel路由缓存的妙用

极速提升性能&#xff1a;Laravel路由缓存的妙用 引言 Laravel是一个优雅而强大的PHP Web应用框架&#xff0c;它提供了许多功能来帮助开发者创建高性能的应用。路由系统是Laravel的核心组件之一&#xff0c;负责将请求的URL映射到相应的控制器方法。然而&#xff0c;路由的注…

docker 安装 使用 ubuntu

安装 sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin测试 sudo docker info 添加到用户组 # 添加docker用户组&#xff0c;一般已存在&#xff0c;不需要执行sudo groupadd docker# 将登陆…