首页 > 其他分享 >Spring MVC 执行流程

Spring MVC 执行流程

时间:2023-07-05 20:59:07浏览次数:28  
标签:控制器 请求 Spring 流程 视图 MVC Handler DispatcherServlet View

Spring MVC 执行流程

Spring MVC 框架整体的请求流程如图,该图显示了用户从请求Request到响应Response的完整流程。

 

  • 1. 用户发起Request 请求,该请求被前端控制器(DispatcherServlet)处理。
  • 2. 前端控制器(DispatcherServlet)请求处理映射器(HandlerMapping)查找Handler。
  • 3. 处理映射器(HandlerMapping)根据配置查找相关的Handler,返回给前端控制器(DispatcherServlet)。
  • 4. 前端控制器(DispatcherServlet)请求处理适配器(HandlerAdapter),执行相应的Handler(或称为Controller)。
  • 5. 处理适配器(HandlerAdapter)执行Handler。
  • 6. Handler 执行完毕后,返回ModelAndView 对象给HandlerAdapter。
  • 7. HandlerAdapter 对象接收到Handler 返回的ModelAndView 对象后,将其返回给前端控制器(DispatcherServlet)。
  • 8. 前端控制器(DispatcherServlet)接收到ModelAndView 对象后,请求视图解析器(View Resolver)对视图进行解析。
  • 9. 视图解析器(View Resolver)根据View 信息匹配相应的视图(View)结果,返回给前端控制器(DispatcherServlet)。
  • 10. 前端控制器(DispatcherServlet)收到View 视图后,对视图进行渲染,将Model 中的模型数据填充到 View 视图中的Request 域,生成最终的视图。
  • 11. 前端控制器(DispatcherServlet)返回请求结果给用户。

以上就是 Spring MVC 请求到响应的整个工作流程,中间使用到的组件有前端控制器(DispatcherServlet)、处理映射器(HandlerMapping)、处理适配器(HandlerAdapter)、处理器(Handler)、视图解析器(View Resolver)和视图(View)等。

处理器适配器(HandlerAdapter)

处理器适配器(HandlerAdapter)执行Handler(或称为Controller)的过程中,Spring 还做了一些额外的工作。

如下所示:

 

  • HttpMessageConverter(消息转换):将请求信息,如Json、XML等数据转换为一个对象,并将对象转换为指定的响应信息。
  • 数据转换:对请求的信息进行转换,如String 转换为 Integer、Double等。
  • 数据格式化:对请求消息进行数据格式化,如字符串转换为格式化数据获知格式化日期等。
  • 数据验证:验证请求数据的有效性,并将验证的结果存储到 BindingResult 或 Error 中。

标签:控制器,请求,Spring,流程,视图,MVC,Handler,DispatcherServlet,View
From: https://www.cnblogs.com/fcjedorfjoeij/p/17529750.html

相关文章

  • springcloud - 工程相关步骤以及提取公共部分
    1.创建父工程 配置pom文件删除src文件2.创建子模块配置pom文件3.配置yml文件4.创建启动类5.业务实现当出现公共代码时可以进行提取 例如实体类或者通用工具类等,如下图,提取成一个单独的模块先点击clean  然后点击install,最后将包导入到需要的子模块中实现相互......
  • springcloud 可能会用到的依赖
    springcloud需要上官网看版本适配不然可能会出现意想不到的问题此笔记使用maven版本 3.8.4<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"x......
  • 【狂神说Java】Java零基础学习笔记-Java流程控制
    【狂神说Java】Java零基础学习笔记-Java流程控制Scanner对象之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。基本语法:Scanner......
  • springboot修改配置
    springboot修改配置在resources下的Application.properties端口:#服务器端口配置server.port=80logo:#修改bannerspring.main.banner-mode=off 图片:#配置图像spring.banner.image.location=de.jpg日志#日志logging.level.root=error查看.properties可以去spring......
  • ASP.NET MVC PUT DELETE 404 C# mvc delete put 失败
    对于使用Url路由访问页面的ASP.NET应用程序,IIS可能会显示404,403之类的错误代码,而且排除了代码问题(本地运行正常),那么就可以加下面这句话:<system.webServer><modules><removename="UrlRoutingModule-4.0"/><addname="UrlRoutingModule-4.0"type="......
  • Spring Boot中Service层依赖注入问题随笔
    问题描述: Controller 层方法为 static 静态,引入 Service 层时使用 @Autowired 注解自动装配,Controller层方法里无法调用Service层,于是加static修饰Service层的注入产生错误:调用Service层进行数据库操作时,注入的Service层报空指针异常( NullPointerException )......
  • 4. SpringBoot整合mybatis
    1.回顾Spring整合Mybatis​Spring​整合Mybatis​需要定义很多配置类​SpringConfig​配置类导入JdbcConfig​配置类导入MybatisConfig​配置类@Configuration@ComponentScan("com.itheima")@PropertySource("classpath:jdbc.properties")@Import({Jdbc......
  • Spring Aop 所有需要的Maven依赖
    <dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.5</version></dependency>这个依赖是AspectJ的编织器(weaver),它是一个面向切面编程(AOP)的工具,用于在运行时对Java代码进行横切(cross-cutting)操作和增强。As......
  • SpringMVC框架详解:模型+核心组件+实现原理等详解
     MVC模型SpringMVC基于MVC模式,因此理解SpringMVC需要先对MVC模式有所了解。MVC是model、view、和controller的缩写,是软件开发中一种常用的架构模式。MVC各部分根据职责进行分离,使程序的结构更为直观,增加了程序的可扩展性、可维护性、可复用性。可以用如下的图形来......
  • springboot 加载自定义的属性配置文件 或者xml文件
    1、properties user.propertiesname=zhangshanage=18  2、xml Pen1.xml<?xmlversion="1.0"encoding="utf-8"?><!DOCTYPEpropertiesSYSTEM"http://java.sun.com/dtd/properties.dtd"><properties><......