【Spring】快速入门Spring Web MVC

文章目录

  • [1. 什么是Spring Web MVC](#1. 什么是Spring Web MVC)
    • [1.1 MVC](#1.1 MVC)
    • [1.2 Spring MVC](#1.2 Spring MVC)
  • [2. 使用Spring MVC](#2. 使用Spring MVC)
    • [2.1 项目创建](#2.1 项目创建)
    • [2.2 建立连接](#2.2 建立连接)
      • [2.2.1 @RequestMapping 注解](#2.2.1 @RequestMapping 注解)
      • [2.2.2 @RestController 注解](#2.2.2 @RestController 注解)
      • [2.2.3 @RequestMapping 使⽤](#2.2.3 @RequestMapping 使⽤)
      • [2.2.4 @RequestMapping 是什么请求?POST?GET?...?](#2.2.4 @RequestMapping 是什么请求?POST?GET?…?)
      • [2.2.5 @RequestMapping 限制方法](#2.2.5 @RequestMapping 限制方法)
  • [3. 使用postman](#3. 使用postman)
    • [3.1 下载postman](#3.1 下载postman)
    • [3.2 postman界面介绍](#3.2 postman界面介绍)
    • [3.3 传参介绍](#3.3 传参介绍)
      • [3.3.1 普通传参](#3.3.1 普通传参)
      • [3.3.2 form-data](#3.3.2 form-data)
      • [3.3.3 x-www-form-urlencoded](#3.3.3 x-www-form-urlencoded)
      • [3.3.4 raw](#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 的缩写,它是软件⼯程中的⼀种软件架构设计模式,它把软件系统分为模型、视图和控制器三个基本部分。

视图 :指在应⽤程序中专⻔⽤来与浏览器进⾏交互,展⽰数据的资源;
控制器 :可以理解为⼀个分发器,⽤来决定对于视图发来的请求,需要⽤哪⼀个模型来处理,以及处理完后需要跳回到哪⼀个视图。即⽤来连接视图和模型;
模型 :是应⽤程序的主体部分,⽤来处理程序中数据逻辑的部分。

通俗的讲,客⼾进店之后, 服务员来接待客⼾点餐, 客⼾点完餐之后, 把客⼾菜单交给前厅, 前厅根据客⼾菜单给后厨下达命令. 后厨负责做饭, 做完之后, 再根据菜单告诉服务员, 这是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后,设计模式也发生了一点改变,但核心思想仍不变:

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,代码如下:

java 复制代码
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";
    }
    
}

启动程序,在浏览器直接访问,如图:

不知道里面有些代码什么意思,下面就介绍。

2.2.1 @RequestMapping 注解

@RequestMapping 是 Spring Web MVC 应⽤程序中最常被⽤到的注解之⼀,它是⽤来注册接⼝的路由映射的。

表⽰服务收到请求时, 路径为 /sayhi 的请求就会调⽤ hi 这个⽅法的代码。
路由映射: 当⽤⼾访问⼀个 URL 时, 将⽤⼾的请求对应到程序中某个类的某个⽅法的过程就叫路由映射。

如果去掉这个注解,我们就请求就会报错。

2.2.2 @RestController 注解

我们把代码中的@RestController去掉,直接访问。

也会报404错误,找不到该界面,这就是@RestController作用。

一个项目中会有许多类,每个类可能有很多的⽅法, Spring程序怎么知道要执⾏哪个⽅法呢?

Spring会对所有的类进⾏扫描, 如果类加了注解@RestController, Spring才会去看这个类⾥⾯的⽅法有没有加 @RequestMapping 这个注解,当然这只是在这种情况中的作用。

2.2.3 @RequestMapping 使⽤

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

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



注意 :路径中第一个/可以不写,也是对的,但最后写。

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

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

  • post
  • get

    我们会发现都可以成功访问,其实@RequestMapping支持所有类型访问。
    当然我们也可以指定访问类型,当然这有时并没必要,我们有一条大路可以走,为什么要走羊肠小道呢。

2.2.5 @RequestMapping 限制方法

代码

java 复制代码
@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请求,便会报错。

value = "sayhello",method = RequestMethod.GET,也可以限制GET等。

3. 使用postman

3.1 下载postman

下载链接: postman,点击下载安装即可。

3.2 postman界面介绍

3.3 传参介绍

3.3.1 普通传参

直接添加URL,我们可以发POST请求,查询字符串可以添加到URL中,也可以在请求参数中添加。

在URL中添加查询字符串,下面会自动生成参数。

3.3.2 form-data

表单提交的数据, 在 form 标签中加上 enctyped="multipart/form-data" , 通常⽤于提交图⽚/⽂件. 对应Content-Type: multipart/form-data。

3.3.3 x-www-form-urlencoded

form表单, 对应Content-Type: application/x-www-from-urlencoded。

3.3.4 raw

可以上传任意格式的⽂本,可以上传text、json、xml、html等。

相关推荐
雨雨雨雨雨别下啦7 小时前
Spring AOP概念
java·后端·spring
on the way 1237 小时前
day04-Spring之Bean的生命周期
java·后端·spring
paopaokaka_luck8 小时前
基于SpringBoot+Uniapp的自习室预约小程序(腾讯地图API、Echarts图形化分析、二维码识别)
vue.js·spring boot·后端·spring·echarts
小小8程序员9 小时前
Spring Boot AOP 全面解析(原理 + 实战 + 场景)
java·spring boot·spring
何中应10 小时前
【面试题-8】Spring/Spring MVC/Spring Boot/Spring Cloud
java·spring boot·后端·spring·mvc·面试题
没什么本事10 小时前
Springboot CGLIB 代理对象问题
java·spring boot·spring
Javatutouhouduan10 小时前
SpringBoot整合reids之JSON序列化文件夹操作
java·spring boot·spring·bootstrap·html·后端开发·java架构师
她说..10 小时前
Spring AOP场景5——异常处理(附带源码)
java·数据库·后端·spring·springboot·spring aop
醇氧10 小时前
springAI学习 (二) 模型
java·学习·spring·ai·ai编程
0和1的舞者10 小时前
《MyBatis 从入门到上手:超全基础操作 + XML 配置指南》
数据库·spring boot·学习·spring·mybatis·框架·开发