【Spring MVC】初步了解Spring MVC的基本概念与如何与浏览器建立连接

前言

🌟🌟本期讲解关于SpringMVC的基础概念,以及如何实现与浏览器的连接,参数的传递~~~

🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客

🔥 你的点赞就是小编不断更新的最大动力

🎆那么废话不多说直接开整吧~~

目录

[📚️1.Spring MVC基础概念](#📚️1.Spring MVC基础概念)

[1.1什么是Spring MVC](#1.1什么是Spring MVC)

1.2什么是MVC

[📚️2.学习Spring MVC](#📚️2.学习Spring MVC)

2.1理解交互模式

[2.2创建Spring MVC项目](#2.2创建Spring MVC项目)

2.3建立连接

[1.@RequestMapping 注解介绍](#1.@RequestMapping 注解介绍)

2.@RestController

2.4@RequestMapping的使用

1.@RequestMapping的请求方法

📚️3.总结


📚️1.Spring MVC基础概念

1.1什么是Spring MVC

官⽅对于 Spring MVC 的描述是这样的:

Spring Web MVC is the original web framework built on the Servlet API and has been included in the Spring Framework from the very beginning. The formal name, "Spring Web MVC", comes from the name of its source module (spring-webmvc)

引⽤来⾃:https://docs.spring.io/spring-framework/reference/web/webmvc.html

翻译过来就是:

Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框架中。它的正式名称"Spring Web MVC"来⾃其源模块的名称(Spring-webmvc),但它通常被称为"Spring
MVC

这里的servlet含义:其实就是一个实现动态⻚⾯的技术. 准确来讲Servlet是⼀套 Java Web 开发的规范,Servlet 规范的产品包括 Tomcat、Weblogic、Jetty、Jboss、WebSphere 等,它们都被称

为"Servlet 容器". Servlet 容器⽤来管理程序员编写的 Servlet 类

总结:

Spring Web MVC其实就是一个Web框架,下面我们简称是Spring MVC

1.2什么是MVC

MVC 是 Model View Controller 的缩写,它是软件⼯程中的⼀种软件架构设计模式,它把软件系统分为模型、视图和控制器三个基本部分

如下图所示:

解释:

• View(视图) 指在应⽤程序中专⻔⽤来与浏览器进⾏交互,展⽰数据的资源.

• Model(模型) 是应⽤程序的主体部分,⽤来处理程序中数据逻辑的部分.

• Controller(控制器)可以理解为⼀个分发器,⽤来决定对于视图发来的请求,需要⽤哪⼀个模型来处理,以及处理完后需要跳回到哪⼀个视图。即⽤来连接视图和模型

这里我们可以理解是:餐厅中,顾客给服务员说要什么菜,再由服务员告诉前台说要做什么菜,然后前台再告诉后台的厨师做什么,然后再又前台将做好的饭菜端上某个客户的餐桌;

总之:MVC其实就是一种软件架构的设计思想;

而上述的Spring MVC其实就是C 是对 MVC 思想的具体实现. 除此之外,Spring MVC还是⼀个Web框架.

总结来说:Spring MVC 是⼀个实现了 MVC 模式的 Web 框架

问题:这里的Spring Boot和Spring MVC的区别是什么?

回答:其实Spring Boot只是实现Spring MVC的一种模式而已Spring Boot 可以添加很多依赖, 借助这些依赖实现不同的功能. Spring Boot 通过添加Spring Web MVC框架, 来实现web功能.

所以可以理解为:SpringBoot就是实现了Spring MVC的封装而已,且不止有Spring MVC这一个模式;

在新的软件架构模式中,以下是另当前使用的方式:

其实这里即时直接 由客户告诉前台做什么菜,从而直接省去了给服务员说的流程2.xue

📚️2.学习Spring MVC

2.1理解交互模式

既然是 Web 框架, 那么当⽤⼾在浏览器中输⼊了 url 之后,我们的 Spring MVC 项⽬就可以感知到⽤⼾的请求, 并给予响应.

咱们学习Spring MVC, 重点也就是学习如何通过浏览器和⽤⼾程序进⾏交互.

主要分以下三个⽅⾯:
1. 建⽴连接 :将⽤⼾(浏览器)和 Java 程序连接起来,也就是访问⼀个地址能够调⽤到我们的

Spring 程序。
2. 请求: ⽤⼾请求的时候会带⼀些参数,在程序中要想办法获取到参数, 所以请求这块主要是 获取参数

的功能.
3. 响应: 执⾏了业务逻辑之后,要把程序执⾏的结果返回给⽤⼾, 也就是响应

2.2创建Spring MVC项目

Spring MVC 项⽬创建和 Spring Boot 创建项⽬相同,在创建的时候选择 Spring Web 就相当于创建了 Spring MVC 的项⽬.

创建项⽬时, 勾选上 Spring Web 模块即可,如下图所⽰:

然后这里点击next后,就会出现如下的情况,然后点击web中的Spring Web;

2.3建立连接

首先当我们创建号一个spring mvc项目后写入以下的代码,其实就是和浏览器进行连接:

java 复制代码
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class RequestController {
    @RequestMapping("/hello")
    public String request1(){
        return "你好 Spring Boot";
    }
}

此时那么就可以在浏览器输入URL进行连接访问这里的方法:

此时就表示已经建立的连接了,那么这里是如何进行连接的呢?

1.@RequestMapping 注解介绍

@RequestMapping 是 Spring Web MVC 应⽤程序中最常被⽤到的注解之⼀,它是⽤来注册接⼝的
路由映射的.
表⽰服务收到请求时, 路径为 /sayHi 的请求就会调⽤ sayHi 这个⽅法的代码.

**路由映射:**当⽤⼾访问⼀个 URL 时, 将⽤⼾的请求对应到程序中某个类的某个⽅法的过程就叫路由映射

所以当我们输入URL后就会通过这里的URL进行路由映射,对应到某个方法进行返回打印在显示台上面;

2.@RestController

一个项目中有许多的类,我们的spring怎么知道要执行那个类中的方法呢,这里就要用到@RestController,Spring会对所有的类进⾏扫描, 如果类加了注解@RestController, Spring才会去看这个类⾥⾯的⽅法有没有加 @RequestMapping 这个注解, 当然他的作⽤不⽌这⼀点

2.4@RequestMapping的使用

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

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

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

此时当我们进行一个类的修饰:

java 复制代码
@RestController
@RequestMapping("/user")
public class RequestController {
    @RequestMapping("/hello")
    public String request1(){
        return "你好 Spring Boot";
    }
}

此时我们在浏览器中进行中进行输入对应的URL就可以进行练级访问了

此时的访问的url就是:127.0.0.1:8080/user/hello如下图所示:

1.@RequestMapping的请求方法

GET方法:

这里就是默认的,此时我们可以通过fiddler进行抓包的处理

进行抓包后,这里的http请求的方法就是GET方法,但是就不能实现POST方法了吗?

POST方法:

我们这里可以通过HTML进行from表单操作:

具体的代码如下所示:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="user/hello" method="post">
    <input type="submit" value="点击我试试">
</form>
</body>
</html>

此时我们在浏览器进行URL的输如,可以看到此时的浏览器的界面:

点击后就可以自动的跳转,此时我们在进行fiddler抓包处理:

抓包后的结果就是如下的:

可以看到此时的http请求的方法就是:POST

那么总结就是:@RequestMapping的http请求方法可以是GET也可以是POST

当然我们也可以通过对于这个代码进行改动实现POST请求方法:

java 复制代码
@RestController
@RequestMapping("/user")
public class RequestController {
    @RequestMapping(value = "/hello",method = RequestMethod.POST)
    public String request1(){
        return "你好 Spring Boot";
    }
}

然后进行抓包的处理后,就可发现这里的结果就是:

此时我们可以看到这里的http请求抓包后也是POST方法;

📚️3.总结

本期小编主要讲解了Spring MVC的概念,以及他与Spring Boot的关系,当然还包括简单的Spring mvc项目的代码演示,如何与浏览器建立连接;

🌅🌅🌅~~~~最后希望与诸君共勉,共同进步!!!


💪💪💪以上就是本期内容了, 感兴趣的话,就关注小编吧。

😊😊 期待你的关注~~~

相关推荐
智慧老师29 分钟前
Spring基础分析13-Spring Security框架
java·后端·spring
lxyzcm31 分钟前
C++23新特性解析:[[assume]]属性
java·c++·spring boot·c++23
V+zmm101341 小时前
基于微信小程序的乡村政务服务系统springboot+论文源码调试讲解
java·微信小程序·小程序·毕业设计·ssm
Oneforlove_twoforjob1 小时前
【Java基础面试题025】什么是Java的Integer缓存池?
java·开发语言·缓存
xmh-sxh-13142 小时前
常用的缓存技术都有哪些
java
迷糊的『迷』2 小时前
vue-axios+springboot实现文件流下载
vue.js·spring boot
AiFlutter2 小时前
Flutter-底部分享弹窗(showModalBottomSheet)
java·前端·flutter
J不A秃V头A3 小时前
IntelliJ IDEA中设置激活的profile
java·intellij-idea
DARLING Zero two♡3 小时前
【优选算法】Pointer-Slice:双指针的算法切片(下)
java·数据结构·c++·算法·leetcode
小池先生3 小时前
springboot启动不了 因一个spring-boot-starter-web底下的tomcat-embed-core依赖丢失
java·spring boot·后端