【 Spring MVC】二、什么是 Spring MVC?

二、什么是 Spring MVC?

2.1 概述:

Spring MVC 是Spring Framework 的一部分,是基于 Java 实现的 MVC 轻量级的 Web 框架。
官方生肉:
https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#spring-web
翻译版本:(翻译版本是4.2.4的)(https://www.w3cschool.cn/spring_mvc_documentation_linesh_translation/spring_mvc_documentation_linesh_translation-dgcm27r3.html)
https://www.w3cschool.cn/spring_mvc_documentation_linesh_translation/spring_mvc_documentation_linesh_translation-dgcm27r3.html

2.2 Spring MVC 有什么特点?为什么要学?

  1. 轻量级,简单易学
  2. 高效,基于请求响应的 MVC 框架
  3. 与 Spring 兼容性好,可以做到无缝结合
  4. 约定优于配置( SpringBoot 也是)
  5. 功能强大:RESTFUL(一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源)、数据验证、格式化、本地化、主题等
  6. 简洁灵活

Spring 的 Web 框架围绕 DispatcherServlet(调度 Servlet)设计。

DispatcherServlet 的作用就是讲请求分发到不同的处理器。Spring 2.5 开始,使用 Java 5 以上版本可以基于注解开发,十分简洁

最重要的是:公司用的多

2.3 中心控制器

上面说到,Spring 的 Web 框架围绕 DispatcherServlet(调度 Servlet)设计。DispatcherServlet 的作用就是讲请求分发到不同的处理器。现在基本采用基于注解的 Controller 声明方式。

Spring MVC 框架像许多其他的 MVC 框架一样,以请求为驱动,围绕一个中心 Servlet 分派请求及提供其他的功能,DispatcherServlet 是一个实际的 Servlet(继承Http Servlet)

关于HttpServlet介绍可以看大神的总结 https://blog.csdn.net/qq_41007534/article/details/99696559
在这里插入图片描述

2.3 Spring MVC 原理

Spring MVC 框架是高度可配置的,包括多种视图技术,例如JSP技术、Velocity、Tiles、iText和POI。SpringMVC框架并不关心使用的视图技术,也不会强迫开发者只使用JSP技术,但是这里只讨论JSP。

SpringMVC框架主要由DispatcherServlet、处理器映射、控制器、视图解析器、视图组成。其工作原理如下图所示:
在这里插入图片描述
在这里插入图片描述

2.4 Spring MVC 执行原理

中文图片便于理解:
在这里插入图片描述
完整图
![在这里插入图片描述](https://img-blog.csdnimg.cn/b9b44b861e5449bfb4d04a4208aad8ac.png
在这里插入图片描述
基于完整图:实线代表的是 Spring 提供的技术,不需要开发者进行实现,虚线是需要开发者进行实现的。

简单分析执行流程:

  • DispatcherServlet 表示的是前端控制器,是整个 Spring MVC 的控制中心。用户发出请求,DispatcherServlet 接受请求并拦截请求。
    假设请求的 url 为:http://localhost:8080/Spring/hello
    上面的 url 可以分为三部分:
    • http://localhost:8080 服务器域名
    • Spring 部署在服务器上的站点
    • hello 控制器
      可以得出,url 表示为:请求位于服务器 localhost:8080 上的 Spring 站点的 hello 控制器
  1. HandlerMapping 为处理器映射。DispatcherServlet 调用 HandlerMapping,HandlerMapping 根据请求的 url 查找 Handler。
  2. HandlerExecution 表示具体的 Handler ,主要作用是根据 url 查找控制器,如上的 url 查找的控制器为 hello
  3. HandlerExecution 讲解析后的信息传递给 DispatcherServlet,如解析控制器映射等。
  4. HandlerAdapter表示处理器适配器,其按照特定的规则去执行Handler。
  5. Handler让具体的Controller执行。
  6. Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView。
  7. HandlerAdapter将视图逻辑名或模型传递给DispatcherServlet。
  8. DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递的逻辑视图名。
  9. 视图解析器将解析的逻辑视图名传给DispatcherServlet。
  10. DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图。
  11. 最终视图呈现给用户。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值