3.1 Spring MVC概述

简介: 用于接收用户请求、转发用户请求、响应结果, DispatcherServlet是整个流程控制的中心,由它调用其他组件处理用户请求,分发到具体的对应Controller,从而获取到需要的业务数据Model,Model再通过DispatcherServlet传递给View完成页面呈现。MVC是一种编程思想,它将应用分为模型(Model)、视图(View)、控制器(Controller)三个层次,这三部分以最低的耦合进行协同工作,从而提高应用的可扩展性及可维护性。进行视图的解析,负责将处理结果生成View视图。

 

1. MVC概念

MVC是一种编程思想,它将应用分为模型(Model)、视图(View)、控制器(Controller)三个层次,这三部分以最低的耦合进行协同工作,从而提高应用的可扩展性及可维护性。

    • 模型(Model)

    模型层主要包括实体类Bean(存储业务数据的类,如Student)和处理业务逻辑的Bean(如Service、Dao)。

      • 视图(View)

      用户与应用程序交互的、展示数据的界面,例如工程中的html页面。

        • 控制器(Controller)

        工程中的servlet,接收视图层发出的请求,将请求转给模型,响应用户请求渲染视图。

        2. Spring MVC概念

        Spring MVC全称Spring Web MVC,通常称为Spring MVC,是基于MVC思想的应用框架,它是Spring提供的一个实现了Web MVC设计模式的轻量级Web框架。

        3. Spring MVC核心组件

        Spring MVC框架主要有前端控制器、处理器映射器、处理器适配器、处理器、视图解析器等组成。

          • 前端控制器DispatcherServlet

          用于接收用户请求、转发用户请求、响应结果, DispatcherServlet是整个流程控制的中心,由它调用其他组件处理用户请求,分发到具体的对应Controller,从而获取到需要的业务数据Model,Model再通过DispatcherServlet传递给View完成页面呈现。

            • 处理器映射器HandlerMapping

            映射URL到处理器,根据请求的URL找到对应的Handler。

              • 处理器适配器HandlerAdapter

              将各种Controller适配成DispatcherServlet可以执行的Handler。

                • 处理器Handler

                开发者编写的业务逻辑,Controller-Service业务。

                  • 视图解析器ViewResolver

                  进行视图的解析,负责将处理结果生成View视图。

                  4. Spring MVC工作原理


                    • 客户端发送请求到前端控制器DispatcherServlet;
                    • 由DispatcherServlet控制器寻找一个或多个HandlerMapping,找到处理请求的Controller;
                    • DispatcherServlet将请求提交到Controller;
                    • Controller调用业务逻辑处理后,返回ModelAndView;
                    • DispatcherServlet请求视图解析器ViewResoler,找到ModelAndView指定的视图;
                    • 视图负责将结果显示到客户端。
                    目录
                    相关文章
                    |
                    3月前
                    |
                    XML Java 数据格式
                    Spring5系列学习文章分享---第一篇(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)
                    Spring5系列学习文章分享---第一篇(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)
                    37 1
                    |
                    6天前
                    |
                    缓存 前端开发 Java
                    【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
                    Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
                    【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
                    |
                    30天前
                    |
                    Java 数据库连接 Spring
                    后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
                    文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
                    后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
                    |
                    1月前
                    |
                    XML JSON 数据库
                    SpringMVC入门到实战------七、RESTful的详细介绍和使用 具体代码案例分析(一)
                    这篇文章详细介绍了RESTful的概念、实现方式,以及如何在SpringMVC中使用HiddenHttpMethodFilter来处理PUT和DELETE请求,并通过具体代码案例分析了RESTful的使用。
                    SpringMVC入门到实战------七、RESTful的详细介绍和使用 具体代码案例分析(一)
                    |
                    1月前
                    |
                    前端开发 应用服务中间件 数据库
                    SpringMVC入门到实战------八、RESTful案例。SpringMVC+thymeleaf+BootStrap+RestFul实现员工信息的增删改查
                    这篇文章通过一个具体的项目案例,详细讲解了如何使用SpringMVC、Thymeleaf、Bootstrap以及RESTful风格接口来实现员工信息的增删改查功能。文章提供了项目结构、配置文件、控制器、数据访问对象、实体类和前端页面的完整源码,并展示了实现效果的截图。项目的目的是锻炼使用RESTful风格的接口开发,虽然数据是假数据并未连接数据库,但提供了一个很好的实践机会。文章最后强调了这一章节主要是为了练习RESTful,其他方面暂不考虑。
                    SpringMVC入门到实战------八、RESTful案例。SpringMVC+thymeleaf+BootStrap+RestFul实现员工信息的增删改查
                    |
                    1月前
                    |
                    JSON 前端开发 Java
                    Spring MVC返回JSON数据
                    综上所述,Spring MVC提供了灵活、强大的方式来支持返回JSON数据,从直接使用 `@ResponseBody`及 `@RestController`注解,到通过配置消息转换器和异常处理器,开发人员可以根据具体需求选择合适的实现方式。
                    88 4
                    |
                    1月前
                    |
                    XML 前端开发 Java
                    Spring MVC接收param参数(直接接收、注解接收、集合接收、实体接收)
                    Spring MVC提供了灵活多样的参数接收方式,可以满足各种不同场景下的需求。了解并熟练运用这些基本的参数接收技巧,可以使得Web应用的开发更加方便、高效。同时,也是提高代码的可读性和维护性的关键所在。在实际开发过程中,根据具体需求选择最合适的参数接收方式,能够有效提升开发效率和应用性能。
                    72 3
                    |
                    1月前
                    |
                    XML 前端开发 Java
                    Spring MVC接收param参数(直接接收、注解接收、集合接收、实体接收)
                    Spring MVC提供了灵活多样的参数接收方式,可以满足各种不同场景下的需求。了解并熟练运用这些基本的参数接收技巧,可以使得Web应用的开发更加方便、高效。同时,也是提高代码的可读性和维护性的关键所在。在实际开发过程中,根据具体需求选择最合适的参数接收方式,能够有效提升开发效率和应用性能。
                    67 2
                    |
                    2月前
                    |
                    前端开发 Java 应用服务中间件
                    我以为我对Spring MVC很了解,直到我遇到了...
                    所有人都知道Spring MVC是是开发的,却鲜有人知道Spring MVC的理论基础来自于1978 年提出MVC模式的一个老头子,他就是Trygve Mikkjel Heyerdahl Reenskaug,挪威计算机科学家,名誉教授。Trygve Reenskaug的MVC架构思想早期用于图形用户界面(GUI) 的软件设计,他对MVC是这样解释的。MVC 被认为是解决用户控制大型复杂数据集问题的通用解决方案。最困难的部分是为不同的架构组件想出好的名字。模型-视图-编辑器是第一个。
                    108 1
                    我以为我对Spring MVC很了解,直到我遇到了...
                    |
                    2月前
                    |
                    前端开发 Java API
                    Spring Boot 中的 MVC 支持
                    ### Spring Boot 注解摘要 - **@RestController** - **@RequestMapping** - **@PathVariable** - **@RequestParam** - **@RequestBody**
                    26 2