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的代码,比叫简单,有兴趣的可以直接复制,去尝试一下

java 复制代码
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;
    }
    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}
传递集合

需要使用到@RequestParam注解。

和数组类似, 同⼀个请求参数名有为多个, 且需要使⽤ @RequestParam 绑定参数关系默认情况下,请求中参数名相同的多个值,是封装到数组. 如果要封装到集合,要使⽤@RequestParam 绑定参数关系

如果不使用这个注解,就会报出500:

由于以上的传递对象的方式比较复杂,下一期我们将会介绍传递对象的另一种方法,JSON数据表示法。

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

如果你将上面的例子都试过了,那么你就能有了自己说动验证这个问题的能力了。

验证歩奏如下


通过切换后,我们发现它即能支持get又能支持post。

相关推荐
七星静香24 分钟前
laravel chunkById 分块查询 使用时的问题
java·前端·laravel
Jacob程序员25 分钟前
java导出word文件(手绘)
java·开发语言·word
ZHOUPUYU25 分钟前
IntelliJ IDEA超详细下载安装教程(附安装包)
java·ide·intellij-idea
stewie629 分钟前
在IDEA中使用Git
java·git
Elaine20239144 分钟前
06 网络编程基础
java·网络
G丶AEOM1 小时前
分布式——BASE理论
java·分布式·八股
落落鱼20131 小时前
tp接口 入口文件 500 错误原因
java·开发语言
想要打 Acm 的小周同学呀1 小时前
LRU缓存算法
java·算法·缓存
镰刀出海1 小时前
Recyclerview缓存原理
java·开发语言·缓存·recyclerview·android面试
阿伟*rui3 小时前
配置管理,雪崩问题分析,sentinel的使用
java·spring boot·sentinel