Spring之路(15)--SpringMVC的工作流程

简介: 本文目录1. SpringMVC是干啥的2. MVC是干啥的3. SpringMVC不外如是4. 总结

1. SpringMVC是干啥的

SpringMVC是Spring框架的一个子项目,是用来开发Web应用的,也就咱们俗称的网站。


MVC的意思是Model模型-View视图-Controller控制器,这是一种模式,可以说是网站开发中最常用的一种模式,SpringMVC也采用了这种模式(废话,不然能叫SpringMVC么)。


也就是说SpringMVC是采用了Spring技术的,采用了MVC设计模式的,应用到Web开发领域的一个Spring大家庭的小老弟。


2. MVC是干啥的

刚刚说了MVC是模型-视图-控制器的一种设计模式,那么没采用MVC之前网站是如何开发的呢?


在没有任何模式下,网站的请求发送到一个web处理程序,该程序首先接受用户的请求(例如搜索用户请求),然后处理该请求(从数据源获取该用户信息),最后返回含有处理结果的视图页面。


注意在该模式下,每个web处理程序都是单独的,有一个接受请求的地址,返回独立的结果。例如在使用JSP时,每个JSP都单独负责接受用户请求-处理-返回,然后JSP页面之前有大量的跳转。这种方式比较难以维护,例如如果开发者要修改一个JSP页面的名字,则所有引用该页面链接的地方都需要修改。


事情没有条理,就是容易导致混乱,所以逐渐就出现了MVC这种模型,它规范了web开发请求-响应的处理流程:


在MVC模型下,C控制器负责接受用户输入,然后调用适当的模型处理问题,最后调整适应的视图显示。模型封装了相关的数据和业务逻辑,视图负责应用的显示。这样各司其职,实际上更加规范更加高效。


3. SpringMVC不外如是

SpringMVC也是MVC模式下的web框架,遵循着一样的处理流程,只不过在具体实现上,有一些接口、类、方法来承担相应的责任。


下面说一下SpringMVC处理的具体流程:


用户从浏览器发起HTTP请求

请求统一进入SpringMVC的Dispatcher Servlet,看到dispatcher(调度)这个单词,差不多就能猜到这个并不是真正的逻辑处理类,而是会将该请求分配到具体的处理器。

那么此处是如何将请求跟处理器匹配起来的呢,也就是说Dispatcher Servlet是如何为请求分配处理器的,实际上请求携带了一个请求地址,然后处理器上也设置了本处理器可处理的请求地址的映射,所以Dispatcher Servlet就可以根据请求地址–映射之间的对应关系完成调度。

此时Dispatcher Servlet将请求传递给容器内的处理器方法,来处理具体业务逻辑。

处理器处理完毕后,组织好数据与视图名称返回给Dispatcher Servlet

Dispatcher Servlet通过视图解析器,解析处理器返回的视图名称,将解析出来的具体视图返回给用户

通过上述描述,我们发现不外乎就是有几个新组件Dispatcher Servlet、处理器、视图解析器。


Dispatcher Servlet就是核心控制器,进来的请求我分配给处理器处理

处理器具体处理用户请求,并返回结果

视图解析器比较简单,也就是将视图名称解析为真正的视图页面

4. 总结

没啥好总结的,典型的MVC封装

相关文章
|
5天前
|
JSON 前端开发 Java
spring mvc Rest风格
spring mvc Rest风格
11 0
|
6天前
|
安全 前端开发 Java
挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构
挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构
12 1
|
9天前
|
设计模式 前端开发 Java
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
14 1
|
9天前
|
前端开发 Dubbo Java
spring面试题_spring mvc面试题_springboot面试题库
spring面试题_spring mvc面试题_springboot面试题库
|
11天前
|
JSON 前端开发 Java
【JavaEE进阶】 关于Spring MVC 响应
【JavaEE进阶】 关于Spring MVC 响应
17 3
|
12天前
|
缓存 NoSQL Java
在 SSM 架构(Spring + SpringMVC + MyBatis)中,可以通过 Spring 的注解式缓存来实现 Redis 缓存功能
【6月更文挑战第18天】在SSM(Spring+SpringMVC+MyBatis)中集成Redis缓存,涉及以下步骤:添加Spring Boot的`spring-boot-starter-data-redis`依赖;配置Redis连接池(如JedisPoolConfig)和连接工厂;在Service层使用`@Cacheable`注解标记缓存方法,指定缓存名和键生成策略;最后,在主配置类启用缓存注解。通过这些步骤,可以利用Spring的注解实现Redis缓存。
37 2
|
12天前
|
前端开发 Java 应用服务中间件
Spring框架第六章(SpringMVC概括及基于JDK21与Tomcat10创建SpringMVC程序)
Spring框架第六章(SpringMVC概括及基于JDK21与Tomcat10创建SpringMVC程序)
序-Servlet和SpringMVC的联系和区别-配置路径先想好使用的使用的方法,然后匹配的需要的技术
序-Servlet和SpringMVC的联系和区别-配置路径先想好使用的使用的方法,然后匹配的需要的技术
|
3天前
|
JSON 前端开发 数据格式
SpringMVC的数据响应-直接回写json字符串
SpringMVC的数据响应-直接回写json字符串
|
3天前
|
XML Java 数据格式
SpringMVC的XML配置解析-spring18
SpringMVC的XML配置解析-spring18