【Spring】快速入门Spring Web MVC

文章目录

  • 1. 什么是Spring Web MVC
    • 1.1 MVC
    • 1.2 Spring MVC
  • 2. 使用Spring MVC
    • 2.1 项目创建
    • 2.2 建立连接
      • 2.2.1 @RequestMapping 注解
      • 2.2.2 @RestController 注解
      • 2.2.3 @RequestMapping 使⽤
      • 2.2.4 @RequestMapping 是什么请求?POST?GET?…?
      • 2.2.5 @RequestMapping 限制方法
  • 3. 使用postman
    • 3.1 下载postman
    • 3.2 postman界面介绍
    • 3.3 传参介绍
      • 3.3.1 普通传参
      • 3.3.2 form-data
      • 3.3.3 x-www-form-urlencoded
      • 3.3.4 raw

1. 什么是Spring Web MVC

Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为"SpringMVC"。
想要更好的理解SpringMVC,我们需要理解什么是MVC。

1.1 MVC

MVC 是 Model View Controller 的缩写,它是软件⼯程中的⼀种软件架构设计模式,它把软件系统分为模型、视图和控制器三个基本部分。
【Spring】快速入门Spring Web MVC_第1张图片
视图:指在应⽤程序中专⻔⽤来与浏览器进⾏交互,展⽰数据的资源;
控制器:可以理解为⼀个分发器,⽤来决定对于视图发来的请求,需要⽤哪⼀个模型来处理,以及处理完后需要跳回到哪⼀个视图。即⽤来连接视图和模型;
模型:是应⽤程序的主体部分,⽤来处理程序中数据逻辑的部分。
通俗的讲,客⼾进店之后, 服务员来接待客⼾点餐, 客⼾点完餐之后, 把客⼾菜单交给前厅, 前厅根据客⼾菜单给后厨下达命令. 后厨负责做饭, 做完之后, 再根据菜单告诉服务员, 这是X号餐桌客⼈的饭。
在这个过程中:
服务员就是View(视图), 负责接待客⼾, 帮助客⼾点餐, 以及给顾客端饭
前厅就是Controller(控制器), 根据⽤⼾的点餐情况, 来选择给哪个后厨下达命令.
后厨就是Model(模型), 根据前厅的要求来完成客⼾的⽤餐需求。

1.2 Spring MVC

MVC是架构的设计模式,是一种思想,那么Spring MVC就是MVC思想的具体实现,也是一种框架。
Spring MVC就是实现MVC思想的Web框架。
它和Spring Boot的关系又是什么呢?
在我们创建Spring Boot项目时,我们会勾选Spring Web框架,这个其实就是Spring MVC框架。
而两者其实并没有必然的关系,Spring MVC是Spring框架的一部分,用于Web开发,Spring Boot是一个用于快速简化搭建Spring应用的框架,所有后者只是搭建前者的一种方式。
Spring在实现MVC后,设计模式也发生了一点改变,但核心思想仍不变:
【Spring】快速入门Spring Web MVC_第2张图片

2. 使用Spring MVC

既然是 Web 框架, 那么当⽤⼾在浏览器中输⼊了 url 之后,我们的 Spring MVC 项⽬就可以感知到⽤⼾的请求, 并给予响应。
咱们学习Spring MVC, 重点也就是学习如何通过浏览器和⽤⼾程序进⾏交互。
主要分以下三个⽅⾯:

  1. 建⽴连接:将⽤⼾(浏览器)和 Java 程序连接起来,也就是访问⼀个地址能够调⽤到我们的 Spring 程序。
  2. 请求: ⽤⼾请求的时候会带⼀些参数,在程序中要想办法获取到参数, 所以请求这块主要是 获取参数 的功能。
  3. 响应: 执⾏了业务逻辑之后,要把程序执⾏的结果返回给⽤⼾, 也就是响应。

对于 Spring MVC 来说,掌握了以上 3 个功能就相当于掌握了 Spring MVC。

2.1 项目创建

项目创建方式和String Boot项目的创建方式相同,在创建时勾选Spring Web框架就是创建了Spring MVC项目,本专栏前面有Spring Boot创建的详解,这里就不过多解释了。

2.2 建立连接

在 Spring MVC 中使⽤ @RequestMapping 来实现 URL 路由映射 ,也就是浏览器连接程序的作⽤。

我们实现一个简单的打印hi,代码如下:

package com.example.demo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    @RequestMapping("/sayhi")
    public String hi(){
        return "hi";
    }
    
}

启动程序,在浏览器直接访问,如图:
【Spring】快速入门Spring Web MVC_第3张图片
不知道里面有些代码什么意思,下面就介绍。

2.2.1 @RequestMapping 注解

@RequestMapping 是 Spring Web MVC 应⽤程序中最常被⽤到的注解之⼀,它是⽤来注册接⼝的路由映射的。
表⽰服务收到请求时, 路径为 /sayhi 的请求就会调⽤ hi 这个⽅法的代码。
路由映射: 当⽤⼾访问⼀个 URL 时, 将⽤⼾的请求对应到程序中某个类的某个⽅法的过程就叫路由映射。
如果去掉这个注解,我们就请求就会报错。
【Spring】快速入门Spring Web MVC_第4张图片
【Spring】快速入门Spring Web MVC_第5张图片

2.2.2 @RestController 注解

我们把代码中的@RestController去掉,直接访问。
【Spring】快速入门Spring Web MVC_第6张图片
【Spring】快速入门Spring Web MVC_第7张图片
也会报404错误,找不到该界面,这就是@RestController作用。
一个项目中会有许多类,每个类可能有很多的⽅法, Spring程序怎么知道要执⾏哪个⽅法呢?
Spring会对所有的类进⾏扫描, 如果类加了注解@RestController, Spring才会去看这个类⾥⾯的⽅法有没有加 @RequestMapping 这个注解,当然这只是在这种情况中的作用。

2.2.3 @RequestMapping 使⽤

@RequestMapping 即可修饰类,也可以修饰⽅法 ,当修饰类和⽅法时,访问的地址是类路径 + ⽅法路径。

  • @RequestMapping标识⼀个类:设置映射请求的请求路径的初始信息
  • @RequestMapping标识⼀个⽅法:设置映射请求请求路径的具体信息

【Spring】快速入门Spring Web MVC_第8张图片
【Spring】快速入门Spring Web MVC_第9张图片
注意:路径中第一个/可以不写,也是对的,但最后写。
hello

2.2.4 @RequestMapping 是什么请求?POST?GET?…?

这个直接测试一下就行,我们使用postman进行测试。

  • post【Spring】快速入门Spring Web MVC_第10张图片
  • get
    【Spring】快速入门Spring Web MVC_第11张图片
    我们会发现都可以成功访问,其实@RequestMapping支持所有类型访问。
    当然我们也可以指定访问类型,当然这有时并没必要,我们有一条大路可以走,为什么要走羊肠小道呢。

2.2.5 @RequestMapping 限制方法

代码

@RequestMapping("/hello")
@RestController
public class HelloController {
    @RequestMapping("/sayhi")
    public String hi(){
        return "hi";
    }

    @RequestMapping(value = "sayhello",method = RequestMethod.POST)
    public String hello(){
        return "hello";
    }
}

如上面代码,我们可以直接value = “sayhello”,method = RequestMethod.POST,这样便只能接受POST类型的请求。
当我们发起GET请求,便会报错。
【Spring】快速入门Spring Web MVC_第12张图片
value = “sayhello”,method = RequestMethod.GET,也可以限制GET等。

3. 使用postman

3.1 下载postman

下载链接: postman,点击下载安装即可。
【Spring】快速入门Spring Web MVC_第13张图片

3.2 postman界面介绍

【Spring】快速入门Spring Web MVC_第14张图片

3.3 传参介绍

3.3.1 普通传参

直接添加URL,我们可以发POST请求,查询字符串可以添加到URL中,也可以在请求参数中添加。
在URL中添加查询字符串,下面会自动生成参数。
【Spring】快速入门Spring Web MVC_第15张图片

3.3.2 form-data

表单提交的数据, 在 form 标签中加上 enctyped=“multipart/form-data” , 通常⽤于提交图⽚/⽂件. 对应Content-Type: multipart/form-data。
【Spring】快速入门Spring Web MVC_第16张图片

3.3.3 x-www-form-urlencoded

form表单, 对应Content-Type: application/x-www-from-urlencoded。
【Spring】快速入门Spring Web MVC_第17张图片

3.3.4 raw

可以上传任意格式的⽂本,可以上传text、json、xml、html等。
【Spring】快速入门Spring Web MVC_第18张图片

你可能感兴趣的:(Spring,spring,mvc,postman)