图解springmvc 执行流程

图解springmvc 执行流程核心对象DispatcherServlet核心控制器负责请求,响应,数据的分发。HandlerMapping处理器映射器,负责到controller中,找到对应的方法,返回给核心控制器。HandleAdapter处理适配器,将handle找到的方法执行,执行结果,即ModelAndView数据和视图返回给核心控制器。HttpMessageConvertor消息转换器,数据类型的转换,如日期…ViewResolver视图解析器,核心控制器调度视图解析器,视图解析器,返回视图。核心控制

大家好,又见面了,我是你们的朋友全栈君。

核心对象

  • DispatcherServlet 核心控制器负责请求,响应,数据的分发。
  • HandlerMapping 处理器映射器,负责到controller中,找到对应的方法,返回给核心控制器。
  • HandleAdapter 处理适配器,将handle找到的方法执行,执行结果,即ModelAndView数据和视图返回给核心控制器。
  • HttpMessageConvertor 消息转换器,数据类型的转换,如日期…
  • ViewResolver 视图解析器,核心控制器调度视图解析器,视图解析器,返回视图。

核心控制器获得实体,渲染,将数据响应到页面。

执行流程图

图解springmvc 执行流程
图解springmvc 执行流程

具体的执行过程

  1. 用户发起request请求,请求至DispatcherServlet前端控制器

  2. DispatcherServlet前端控制器请求HandlerMapping处理器映射器查找Handler,DispatcherServlet:前端控制器,相当于中央调度器,各各组件都和前端控制器进行交互,降低了各各组件之间耦合度。

  3. HandlerMapping处理器映射器,根据url及一些配置规则(xml配置、注解配置)查找Handler,将Handler返回给DispatcherServlet前端控制器。

  4. DispatcherServlet前端控制器调用适配器执行Handler,有了适配器通过适配器去扩展对不同Handler执行方式(比如:原始servlet开发,注解开发)

  5. 适配器执行Handler,Handler是后端控制器,当成模型。(Controller)

  6. Handler执行完成返回ModelAndView,ModelAndView:springmvc的一个对象,对Model和view进行封装。

  7. 适配器将ModelAndView返回给DispatcherServlet

  8. DispatcherServlet调用视图解析器进行视图解析,解析后生成view,视图解析器根据逻辑视图名解析出真正的视图。
    View:springmvc视图封装对象,提供了很多view,jsp、freemarker、thymeleaf、pdf、excel。。。

  9. ViewResolver视图解析器给前端控制器返回view

  10. DispatcherServlet调用view的渲染视图的方法,将模型数据填充到request域 。

  11. DispatcherServlet向用户响应结果(jsp页面、json数据。。。。)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154116.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 详解robots.txt和Robots META标签

    详解robots.txt和Robots META标签对于网站管理者和内容提供者来说,有时候会有一些站点内容,不希望被ROBOTS抓取而公开。为了解决这个问题,ROBOTS开发界提供了两个办法:一个是robots.txt,另一个是The Robots meta标签。 一、 robots.txt1、 什么是robots.txt?  robots.txt是一个纯文本文件,通过在这个文件中声明该网站中不想被robots访问的部分,这样,该网站的部分或全部内

    2022年5月14日
    39
  • 网站的栏目页是什么_栏目页

    网站的栏目页是什么_栏目页功能说明栏目子分类列表,栏目导航适用范围首页模板,列表模板,内容模板基本语法[NT:unLoop,NT:SiteID=0,NT:LabelType=ClassNavi,NT:ClassID=ClassID,NT:HrefCSS=HrefCSS,NT:NaviChar=NaviChar,NT:isDiv=false,NT:Cols=1][/NT:unLoop…

    2022年9月28日
    4
  • opencv-形态处理

    opencv-形态处理

    2022年1月10日
    43
  • Spring过滤器和拦截器的区别[通俗易懂]

    Spring过滤器和拦截器的区别[通俗易懂]Spring过滤器和拦截器的区别 两者的作用 过滤器:是在javaweb中,你传入的request、response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者struts的action前统一设置字符…

    2022年8月23日
    7
  • CE修改器使用教程 [基础篇]

    CheatEngine一般简称CE,是一个开放源代码的作弊软件,其功能包括:内存扫描、十六进制编辑器、调试工具,CheatEngine自身附带了外挂制作工具,可以用它直接生成外挂工具,CE可以说是目前最优秀的游戏修改器不是之一,这个工具绝对值得你去学习(只要花一点时间就够了)。本篇文章只是转载内容,后期将会以一些单机游戏为重点,讲解飞天,蹲地,无敌,秒杀,等功能的实现,更多实战教程敬请…

    2022年4月3日
    655
  • IT视频资源分享列表

    IT视频资源分享列表

    2022年2月10日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号