Spring Web MVC

1. 什么是 Spring Web MVC?

官⽅对于SpringMVC的描述是这样的:

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

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

什么是Servlet呢?

Servlet是⼀种实现动态⻚⾯的技术.准确来讲Servlet是⼀套JavaWeb开发的.规范,或者说是⼀套 JavaWeb开发的技术标准.只有规范并不能做任何事情,必须要有⼈去实现它.所谓实现Servlet规 范,就是真正编写代码去实现Servlet规范提到的各种功能,包括类、⽅法、属性等. Servlet规范是开放的,除了Sun公司,其它公司也可以实现Servlet规范,⽬前常⻅的实现了 Servlet规范的产品包括Tomcat、Weblogic、Jetty、Jboss、WebSphere等,它们都被称 为 “Serlet容器”. Serlet容器用来管理程序员编写的Serlet类.

从上述定义我们可以得出⼀个信息:SpringWebMVC是⼀个Web框架.

下⾯咱们简称之为:SpringMVC

然⽽要真正的理解什么是SpringMVC?我们⾸先要搞清楚什么是MVC?

1.1 MVC定义

MVC是ModelViewController的缩写,它是软件⼯程中的⼀种软件架构设计模式,它把软件系统分 为模型、视图和控制器三个基本部分
在这里插入图片描述

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

⽐如去饭店吃饭

客⼾进店之后,服务员来接待客⼾点餐,客⼾点完餐之后,把客⼾菜单交给前厅,前厅根据客⼾菜单
给后厨下达命令.后厨负责做饭,做完之后,再根据菜单告诉服务员,这是X号餐桌客⼈的饭.

在这个过程中

服务员就是View(视图),负责接待客⼾,帮助客⼾点餐,以及给顾客端饭

前厅就是Controller(控制器),根据⽤⼾的点餐情况,来选择给哪个后厨下达命令.

后厨就是Model(模型),根据前厅的要求来完成客⼾的⽤餐需求

⽐如去公司⾯试

我们到了公司之后,HR会给我们安排会议室,根据候选⼈去通知不同的部⻔来安排⾯试,⾯试结束 后,由HR来告诉⾯试结果

在这个过程中

HR就是View(视图),负责接待候选⼈,并告知候选⼈⾯试结果

不同的部⻔,就是Controller(控制器),HR根据候选⼈来选择对应的部⻔来进⾏⾯试

⾯试官,就是Model层,来处理⾯试这个事情.

1.2 什么是 Spring MVC?

MVC是⼀种架构设计模式,也⼀种思想,⽽SpringMVC是对MVC思想的具体实现.除此之外,Spring MVC还是⼀个Web框架.

总结来说,SpringMVC是⼀个实现了MVC模式的Web框架.

所以,SpringMVC主要关注有两个点:

  1. MVC

  2. Web框架

    SpringMVC全称是SpringWebMVC

其实,SpringMVC我们在前⾯已经⽤过了,在创建SpringBoot项⽬时,我们勾选的SpringWeb框架 其实就是SpringMVC框架:
在这里插入图片描述

可以看到,SpringWeb的介绍是: Buildweb,includingRESTful,applicationsusingSpringMVC.UsesApacheTomcatasthedefault embeddedcontainer.

这时候可能有些同学就懵了,前⾯创建的不是SpringBoot项⽬吗?怎么⼜变成了SpringMVC项⽬?他们 之间到底有着什么样的关系?

SpringBoot是2014年发布的,Spring是2004年发布的,在2014年发布之前,就不能⽤Spring实现MVC 架构吗?显然不是了.

SpringBoot只是实现SpringMVC的其中⼀种⽅式⽽已.

SpringBoot可以添加很多依赖,借助这些依赖实现不同的功能.SpringBoot通过添加SpringWeb MVC框架,来实现web功能.

⽐如:厨房可以⽤来做饭,但真实实现做饭功能的是⽕以及各种做饭相关的⻝材和⼯具. 厨房就好⽐是SpringBoot,厨房可以装柜⼦,实现收纳功能,装燃⽓灶等,实现做饭功能. 做饭这个事,就是MVC,在⼏千年前,有⽕有⻝材就可以实现做饭.
在这里插入图片描述

不过Spring在实现MVC时,也结合⾃⾝项⽬的特点,做了⼀些改变,相对⽽⾔,下⾯这个图或许更加合适 ⼀些.
在这里插入图片描述

不过核⼼没变

⽐如上⾯的例⼦中,去饭店吃饭.⼀些饭店是前厅来负责接待客⼾,帮助客⼾点餐,也就是Controller来 负责接收⽤⼾的请求.

去公司⾯试,直接由⾯试官来接待候选⼈,省去了HR中间的交接过程.

2. 学习Spring MVC

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

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

主要分以下三个⽅⾯:

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

⽐如⽤⼾去银⾏存款

  1. 建⽴连接:去柜台
  2. 请求:带着银⾏卡,⾝份证去存款
  3. 响应:银⾏返回⼀张存折.

对于SpringMVC来说,掌握了以上3个功能就相当于掌握了SpringMVC.

2.1 项目准备

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

SpringMVC使⽤SpringBoot的⽅式创建

SpringMVC更早期的实现⽅式,课程中不再讲解.

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨 子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值