初识 Spring(06)---(MVC原理)

简介: MVC原理MVC  原理图Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。  通常模型对象负责在数据库中存取数据。

MVC原理

MVC  原理图

mvc%e6%a8%a1%e5%bc%8f

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
  通常模型对象负责在数据库中存取数据。

View(视图)是应用程序中处理数据显示的部分。
  通常视图是依据模型数据创建的。

Controller(控制器)是应用程序中处理用户交互的部分。
  通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

spring MVC  原理图

过程:

1.客户端发送HTTP请求,先到中央处理器(servlet),中央处理器会将 url 地址传给 处理器映射器;

2. 处理器映射器根据  url 地址 找到处理器(自己写的),找到后生成一个处理器对象,然后该对象和拦截器链一起返回给中央处理器;

3.中央处理器收到真正的处理器对象后,它自身并不能调用该处理器,而是通过处理器适配器;处理器对象给处理器适配器发送

ModelAndView 对象(里面封装了数据信息,可以从处理器调用 service--dao--从数据库查询信息,将这些信息放到 Model 里面, Model里存放数据信息;View 里存放逻辑视图,即指向真正 JSP 页面的字符串),处理器适配器收到ModelAndView 对象会将其传给中央处理器;

4.这时中央处理器收到的View只是个字符串,需要将其转换成真正的视图;调用视图解析器(能将逻辑视图名找到真正的视图,并将真正的视图(JSP)返回给中央处理器),这时中央处理器有了数据和视图;

5.进行视图渲染(将JSP页面中的 el表达式 和 jstl标签 用 model 中的数据进行替换)后中央处理器有了一个静态页面;再将这个

静态页面返回给客户端

图片升级(实际上和上图一样)

更高端一点

Spring的模型-视图-控制器(MVC),该框架是围绕一个DispatcherServlet来设计的,这个DispatcherServlet就是一个我们很熟悉的Servlet,当然这个Servlet,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传等功能。原理 如下图所示:

关于上图的一个说明:

1、首先,Http请求:将客户端请求提交到DispatcherServlet这个Servlet。

2、然后,找到处理器:由DispatcherServlet控制器查询出一个或多个HandlerMapping,并且找到处理请求的Controller(控制器类)。

3、然后,调用处理器:DispatcherServlet将请求提交到Controller(控制器类)。

4、然后,调用业务处理和返回结果:Controller调用业务逻辑处理后,返回了ModelAndView。

5.、然后,处理视图映射并返回模型: DispatcherServlet查询到一个或多个ViewResoler视图解析器后,找到ModelAndView指定的视图(页面)。

7、最后,就是Http响应了:视图负责将结果显示到客户端页面上。

目录
相关文章
|
26天前
|
Java Spring 容器
Spring底层原理大致脉络
Spring底层原理大致脉络
|
26天前
|
JSON 前端开发 Java
SSM:SpringMVC
本文介绍了SpringMVC的依赖配置、请求参数处理、注解开发、JSON处理、拦截器、文件上传下载以及相关注意事项。首先,需要在`pom.xml`中添加必要的依赖,包括Servlet、JSTL、Spring Web MVC等。接着,在`web.xml`中配置DispatcherServlet,并设置Spring MVC的相关配置,如组件扫描、默认Servlet处理器等。然后,通过`@RequestMapping`等注解处理请求参数,使用`@ResponseBody`返回JSON数据。此外,还介绍了如何创建和配置拦截器、文件上传下载的功能,并强调了JSP文件的放置位置,避免404错误。
|
1月前
|
Java Spring 容器
Spring IOC、AOP与事务管理底层原理及源码解析
【10月更文挑战第1天】Spring框架以其强大的控制反转(IOC)和面向切面编程(AOP)功能,成为Java企业级开发中的首选框架。本文将深入探讨Spring IOC和AOP的底层原理,并通过源码解析来揭示其实现机制。同时,我们还将探讨Spring事务管理的核心原理,并给出相应的源码示例。
117 9
|
1月前
|
前端开发 Java 应用服务中间件
【Spring】Spring MVC的项目准备和连接建立
【Spring】Spring MVC的项目准备和连接建立
51 2
|
2月前
|
缓存 前端开发 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版)
|
1月前
|
XML 前端开发 Java
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
本文阐述了Spring、Spring Boot和Spring MVC的关系与区别,指出Spring是一个轻量级、一站式、模块化的应用程序开发框架,Spring MVC是Spring的一个子框架,专注于Web应用和网络接口开发,而Spring Boot则是对Spring的封装,用于简化Spring应用的开发。
90 0
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
|
2月前
|
XML 缓存 前端开发
springMVC02,restful风格,请求转发和重定向
文章介绍了RESTful风格的基本概念和特点,并展示了如何使用SpringMVC实现RESTful风格的请求处理。同时,文章还讨论了SpringMVC中的请求转发和重定向的实现方式,并通过具体代码示例进行了说明。
springMVC02,restful风格,请求转发和重定向
|
30天前
|
XML 前端开发 Java
拼多多1面:聊聊Spring MVC的工作原理!
本文详细剖析了Spring MVC的工作原理,涵盖其架构、工作流程及核心组件。Spring MVC采用MVC设计模式,通过DispatcherServlet、HandlerMapping、Controller和ViewResolver等组件高效处理Web请求。文章还探讨了DispatcherServlet的初始化和请求处理流程,以及HandlerMapping和Controller的角色。通过理解这些核心概念,开发者能更好地构建可维护、可扩展的Web应用。适合面试准备和技术深挖
40 0
|
1月前
|
负载均衡 Java API
Spring Cloud原理详解
Spring Cloud原理详解
61 0
|
1月前
|
负载均衡 Java 网络架构
Spring Cloud原理详解
介绍了Spring Cloud的原理和核心组件,包括服务注册与发现、配置管理、负载均衡、断路器、智能路由、分布式消息传递、分布式追踪和服务熔断等,旨在帮助开发人员快速构建和管理微服务架构中的分布式系统。
48 0