【JavaEE进阶】 初识Spring Web MVC

简介: 【JavaEE进阶】 初识Spring Web MVC


🌴什么是Spring Web MVC?

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

🚩什么是Servlet呢?

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 定义

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

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

这个过程我们可以想象成去饭店吃饭

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

在这个过程中

  • 服务员就是View(视图):负责接待客⼾,帮助客⼾点餐,以及给顾客端饭
  • 前厅就是Controller(控制器):根据⽤⼾的点餐情况,来选择给哪个后厨下达命令.
  • 后厨就是Model(模型):根据前厅的要求来完成客⼾的⽤餐需求

🚩再理解Spring MVC

当我们知道知道了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的时候的那个吃饭的例子。现在的这个模型可以理解为

该饭店是前台来进行接待客户,然后服务员只负责听前台的话,将菜传到顾客手中

🍀如何学习Spring MVC呢?

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

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

主要分以下三个⽅⾯:

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

⽐如⽤⼾去银⾏存款

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

对于Spring MVC来说,掌握了以上3个功能就可以学好Spring MVC.

⭕总结

关于《【JavaEE进阶】 初识Spring Web MVC》就讲解到这儿,感谢大家的支持,欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下!

相关文章
|
2月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
60 4
|
24天前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
46 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
9天前
|
设计模式 前端开发 Java
步步深入SpringMvc DispatcherServlet源码掌握springmvc全流程原理
通过对 `DispatcherServlet`源码的深入剖析,我们了解了SpringMVC请求处理的全流程。`DispatcherServlet`作为前端控制器,负责请求的接收和分发,处理器映射和适配负责将请求分派到具体的处理器方法,视图解析器负责生成和渲染视图。理解这些核心组件及其交互原理,有助于开发者更好地使用和扩展SpringMVC框架。
24 4
|
27天前
|
前端开发 Java 开发者
Spring MVC中的请求映射:@RequestMapping注解深度解析
在Spring MVC框架中,`@RequestMapping`注解是实现请求映射的关键,它将HTTP请求映射到相应的处理器方法上。本文将深入探讨`@RequestMapping`注解的工作原理、使用方法以及最佳实践,为开发者提供一份详尽的技术干货。
95 2
|
27天前
|
XML Java 网络架构
使用 Spring Boot 公开 SOAP Web 服务端点:详细指南
使用 Spring Boot 公开 SOAP Web 服务端点:详细指南
35 0
|
2月前
|
JSON 前端开发 Java
SSM:SpringMVC
本文介绍了SpringMVC的依赖配置、请求参数处理、注解开发、JSON处理、拦截器、文件上传下载以及相关注意事项。首先,需要在`pom.xml`中添加必要的依赖,包括Servlet、JSTL、Spring Web MVC等。接着,在`web.xml`中配置DispatcherServlet,并设置Spring MVC的相关配置,如组件扫描、默认Servlet处理器等。然后,通过`@RequestMapping`等注解处理请求参数,使用`@ResponseBody`返回JSON数据。此外,还介绍了如何创建和配置拦截器、文件上传下载的功能,并强调了JSP文件的放置位置,避免404错误。
|
2月前
|
前端开发 Java 应用服务中间件
【Spring】Spring MVC的项目准备和连接建立
【Spring】Spring MVC的项目准备和连接建立
65 2
|
3月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
|
2月前
|
XML 前端开发 Java
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
本文阐述了Spring、Spring Boot和Spring MVC的关系与区别,指出Spring是一个轻量级、一站式、模块化的应用程序开发框架,Spring MVC是Spring的一个子框架,专注于Web应用和网络接口开发,而Spring Boot则是对Spring的封装,用于简化Spring应用的开发。
192 0
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
|
3月前
|
XML 缓存 前端开发
springMVC02,restful风格,请求转发和重定向
文章介绍了RESTful风格的基本概念和特点,并展示了如何使用SpringMVC实现RESTful风格的请求处理。同时,文章还讨论了SpringMVC中的请求转发和重定向的实现方式,并通过具体代码示例进行了说明。
springMVC02,restful风格,请求转发和重定向