首页 > 其他分享 >Spring MVC的主要组件和工作流程

Spring MVC的主要组件和工作流程

时间:2022-08-20 22:11:10浏览次数:72  
标签:Spring 视图 HandlerAdapter 程序员 Handler MVC 处理器 组件 DispatcherServlet

Spring MVC的主要组件

(1)前端控制器 DispatcherServlet(不需要程序员开发)

  • 作用:接收请求、响应结果,相当于转发器,有了DispatcherServlet 就减少了其它组件之间的耦合度。

(2)处理器映射器HandlerMapping(不需要程序员开发)

  • 作用:根据请求的URL来查找Handler

(3)处理器适配器HandlerAdapter

  • 注意:在编写Handler的时候要按照HandlerAdapter要求的规则去编写,这样适配器HandlerAdapter才可以正确的去执行Handler。

(4)处理器Handler(需要程序员开发)

(5)视图解析器 ViewResolver(不需要程序员开发)

  • 作用:进行视图的解析,根据视图逻辑名解析成真正的视图(view)

(6)视图View(需要程序员开发jsp)

  • View是一个接口, 它的实现类支持不同的视图类型(jsp,freemarker,pdf等等)

请描述Spring MVC的工作流程?描述一下 DispatcherServlet 的工作流程?

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2020/4/14/171744675337b0ec~tplv-t2oaga2asx-zoom-in-crop-mark:3024:0:0:0.awebp

(1)用户发送请求至前端控制器DispatcherServlet;

(2) DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle;

(3)处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;

(4)DispatcherServlet 调用 HandlerAdapter处理器适配器;

(5)HandlerAdapter 经过适配调用 具体处理器(Handler,也叫后端控制器);

(6)Handler执行完成返回ModelAndView;

(7)HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet;

(8)DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析;

(9)ViewResolver解析后返回具体View;

(10)DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)

(11)DispatcherServlet响应用户。

标签:Spring,视图,HandlerAdapter,程序员,Handler,MVC,处理器,组件,DispatcherServlet
From: https://www.cnblogs.com/chaos2022/p/16608895.html

相关文章

  • spring为什么不能只用一二级缓存来解决循环依赖?
    Springbean注入流程类实例化->属性注入->执行初始化方法->(如果有需要)生成代理对象->使用二级缓存存在的问题举例说明:A、B两个类相互依赖,初始化A的时候,第一步......
  • Spring之控制反转IoC与依赖注入DI讲解
    1.最终目录2.代码示例(1)BookDaoImpl.java与BookServiceImpl.javapackagecom.hung.dao.Impl;importcom.hung.dao.BookDao;importcom.hung.service.Impl.BookSe......
  • 认识mvc
    MVC设计模式MVC是Model-View-Controller的缩写,其中每个单词都有其不同的含义:Modle 代表数据存储层,是对数据表的定义和数据的增删改查;View 代表视图层,是系统前端显......
  • Spring体现的设计模式
    涉及到的模式工厂设计模式:Spring使用工厂模式通过BeanFactory、ApplicationContext创建bean对象。代理设计模式:SpringAOP功能的实现。单例设计模式:Sprin......
  • Spring Bean生命周期
    Bean的生命周期Bean容器找到配置文件中SpringBean的定义。Bean容器利用JavaReflectionAPI创建一个Bean的实例。如果涉及到一些属性值利用set()方法设置......
  • 【SpringBoot】定时任务
    SpringBoot实现定时任务SpringBoot创建定时任务,目前主要有以下三种实现方式:基于注解(@Scheduled):基于注解@Scheduled默认为单线程,开启多个任务时,任务的执行时机会受上......
  • spring注解之@Import注解的三种使用方式
    @目录1、@Import注解须知2、@Import的三种用法2.1、第一种用法:直接填class数组2.2、第二种用法:ImportSelector方式【重点】2.3、第三种用法:ImportBeanDefinitionRegistrar......
  • Mybatis组件介绍
    核心组件SqlSessionFactoryBuilderSqlSessionFactoryBuilder的作用就是通过XML或者Java代码来建造一个工厂(SqlSessionFactory),并且可以通过它建造多个这样的工厂。一旦......
  • Spring Boot调用api patch接口
    SpringBoot调用apipatch接口示例:/***调用apipatch接口**@paramurl*@paramjsonObject*@returnjava.lang.String*@a......
  • Spring Boot调用api delete接口
     SpringBoot调用apidelete接口示例:/***调用apidelete接口**@paramurl*@authorli.zhm*@date2022/8/2014:07*@hist......