SpringMVC 工作原理

SpringMVC 工作原理1.客户端请求提交到DispatcherServlet2.由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller3.DispatcherServlet将请求提交到Controller4.Controller调用业务逻辑处理后,返回ModelAndView5.DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图,并将结果显示到客户

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


一、工作原理

Spring的MVC框架主要由DispatcherServlet、映射处理器、处理器(控制器)、视图解析器、视图组成。

SpringMVC 工作原理

简单描述

  1. 客户端请求提交到DispatcherServlet
  2. 由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller
  3. DispatcherServlet将请求提交到Controller
  4. Controller调用业务逻辑处理后,返回ModelAndView
  5. DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图,并将结果显示到客户

详细过程

  1. 用户发送请求至前端控制器DispatcherServlet
  2. DispatcherServlet调用处理器映射器HandlerMappering
  3. 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;
  4. DispatcherServlet调用处理器适配器HandlerAdapter
  5. 处理器适配器经过适配调用具体的处理器(Controller,也叫后端控制器)
  6. Controller执行完成返回ModelAndView;
  7. 处理器适配器将controller执行结果ModelAndView返回给DispatcherServlet;
  8. DispatcherServlet将ModelAndView传给视图解析器ViewReslover
  9. 视图解析器解析后返回具体View;
  10. DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中),并响应给用户。

二、处理器/组件 的作用

前端控制器DispatcherServlet(也叫中央处理器):作为前端控制器,整个流程控制的中心,控制其它组件执行,统一调度,降低组件之间的耦合性,提高每个组件的扩展性。

处理器映射器HandlerMappering:通过扩展处理器映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。

处理器适配器HandlerAdapter:通过扩展处理器适配器,支持更多类型的处理器。

视图解析器ViewReslover:通过扩展视图解析器,支持更多类型的视图解析,例如:jsp、freemarker、pdf、excel等。
 


如果有错误的地方欢迎指出~?
转载请标明:
https://blog.csdn.net/vihem/article/details/120888564

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146551.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Java并发体系

    Java并发体系Java并发体系

  • Android测试三件套:传文件、抓包、看日志

    Android测试三件套:传文件、抓包、看日志

    2020年11月20日
  • Unity3D 虚拟现实开发(一)[通俗易懂]

    Unity3D 虚拟现实开发(一)[通俗易懂]大家好,这是我第一篇文章,之前做房地产虚拟现实工作,是时候总结一下制作经验了,现在想将简单的制作流程及设计到的问题整理出来,供大家参考。Unity3D软件安装。以2018.2.14例访问地址:https://unity3d.com/cn/get-unity/download/archive?_ga=2.194947693.1768064749.1541907838-1070007498…

  • 教师职称考计算机模块,2015年教师职称计算机考试模块「建议收藏」

    教师职称考计算机模块,2015年教师职称计算机考试模块「建议收藏」【职考宝典】为广大考生归纳2015年职称计算机考试模块,让考生提前进入考试氛围,了解考试题型,职考宝典涵盖面积广,模拟题库包含Internet应用,word2003、2007,winXP、wpsoffice、excel2003、2007,ppt2003、2007等。2015年教师职称计算机考试模块【职考宝典】为广大考生归纳2015年职称计算机考试模块,让考生提前进入考试氛围,了解考试题型,职考…

  • hive正则匹配特殊字符(正则表达式字符串匹配)

    首先,中文字符集为’^[\\4e00-\\u9fa5]$’1.如果直接在Hive命令行中使用,则直接使用‘^[\\u4e00-\\u9fa5]$’进行匹配2.如果在终端调用,则需叫上转义符,如hive-e”select’中国’rlike‘^[\\\u4e00-\\\u9fa5]$’”3.在scala和java中使用同1;valre…

  • 用心做软件—细节决定成败「建议收藏」

    用心做软件—细节决定成败「建议收藏」软件是什么?也许在编程者的眼中这是自己智慧的结晶,是技术运用的成果。但是在用户的眼中呢,用户会在乎你到底用了多少高级的技术、用了什么前卫的技术吗?我想大部分用户是不会管的,无论你是C#做的,Java做的,C++还是C做的,你的系统是Windows还是Linux,android还是塞班。用户的眼中你的软件只是一件产品,那么既然是产品,就要有价值,要能为用户带来方便,能为用户解决问题。当今的互联网上,

发表回复

您的电子邮箱地址不会被公开。

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