Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从?开始就包含在Spring框架中。它的正式名称“Spring Web MVC”来?其源模块的名称(Spring-webmvc),但它通常被称为)Spring MVC).
Servlet是?种实现动态??的技术.准确来讲Servlet是?套Java Web 开发的规范,或者说是?套Java Web 开发的技术标准.
只有规范并不能做任何事情,必须要有?去实现它.所谓实现Servlet规范,就是真正编写代码去实现Servlet规范提到的各种功能,包括类、?法、属性等.
Servlet规范是开放的,除了Sun公司,其它公司也可以实现Servlet规范,?前常?的实现了Servlet规范的产品包括Tomcat、Weblogic、Jetty、Jboss、WebSphere等,它们都被称为)Servlet容器".
Servlet容器?来管理程序员编写的Servlet类
从上述定义我们可以得出?个信息:Spring Web MVC是?个Web框架,简称Spring MVC
当我们理解了什么是Spring Web MVC,就不得不理解一下MVC。
MVC 是 Model View Controller 的缩写,它是软件?程中的?种软件架构设计模式,它把软件系统分为模型、视图和控制器三个基本部分。如下图所示
View(视图):指在应?程序中专??来与浏览器进?交互,展?数据的资源.
Model(模型):是应?程序的主体部分,?来处理程序中数据逻辑的部分.
Controller(控制器) :可以理解为?个分发器,?来决定对于视图发来的请求,需要?哪?个模型来处理,以及处理完后需要跳回到哪?个视图。即?来连接视图和模型
这个过程我们可以想象成去饭店吃饭
客?进店之后,服务员来接待客?点餐,客?点完餐之后,把客?菜单交给前厅,前厅根据客?菜单给后厨下达命令.后厨负责做饭,做完之后,再根据菜单告诉服务员,这是X号餐桌客?的饭.
在这个过程中
- 服务员就是View(视图):负责接待客?,帮助客?点餐,以及给顾客端饭
- 前厅就是Controller(控制器):根据??的点餐情况,来选择给哪个后厨下达命令.
- 后厨就是Model(模型):根据前厅的要求来完成客?的?餐需求
当我们知道知道了MVC后,就能更好的理解Spring MVC了。
Spring MVC 其实就是对MVC思想的具体实现.除此之外,Spring MVC还是?个Web框架
.
总结来说,Spring MVC是?个实现了MVC模式的Web框架.
那我们需要怎么样创建Spring MVC项目呢?其实博主在SpringBoot的创建与简单使用已经演示过了,就是在添加依赖的时候。如下图所示:
这时候可能有些人就懵了,前?创建的不是SpringBoot项?吗?怎么?变成了SpringMVC项??他们之间到底有着什么样的关系?
SpringBoot是2014年发布的,Spring是2004年发布的,在2014年发布之前,就不能?Spring实现MVC架构吗?答案显然不是这样的.
Spring Boot只是实现Spring MVC的其中?种?式?已.
Spring Boot 可以添加很多依赖,借助这些依赖实现不同的能.Spring Boot 通过添加Spring WebMVC框架, 来实现web功能
?如:厨房可以?来做饭,但真实实现做饭功能的是?以及各种做饭相关的?材和?具.
厨房就好?是SpringBoot,厨房可以装柜?,实现收纳功能,装燃?灶等,实现做饭功能.做饭这个事,就是MVC,在?千年前,有?有?材就可以实现做饭.
我们需要记住的是Spring MVC是一种思想,这种思想可以有很多方式来实现,而SpringBoot就是其中的一种。
不过Spring在实现MVC时,也结合??项?的特点,做了?些改变,相对??,下?这个图或许更加合适?些
上述图虽然变了,但是核心没有变。继续举上面讲MVC的时候的那个吃饭的例子。现在的这个模型可以理解为
该饭店是前台来进行接待客户,然后服务员只负责听前台的话,将菜传到顾客手中
既然是 Web 框架, 那么当??在浏览器中输?了 url 之后,我们的Spring MVC项?就可以感知到??的请求,并给予响应.
咱们学习Spring MVC,重点也就是学习如何通过浏览器和??程序进?交互.
主要分以下三个??:
?如??去银?存款
建?连接:去柜台
请求:带着银?卡,?份证去存款
响应:银?返回?张存折.
对于Spring MVC来说,掌握了以上3个功能就可以学好Spring MVC.
关于《【JavaEE进阶】 初识Spring Web MVC》就讲解到这儿,感谢大家的支持,欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下!