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

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

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

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


相关推荐

  • 深度学习:有监督学习、无监督学习和半监督学习

    深度学习:有监督学习、无监督学习和半监督学习是否有监督(supervised),就看输入数据是否有标签(label)。输入数据有标签,则为有监督学习,没标签则为无监督学习。文章目录一、监督式学习二、无监督式学习三、半监督式学习一、监督式学习在监督式学习下,输入数据被称为“训练数据”,每组训练数据有一个明确的标识或结果,如对防垃圾邮件系统中“垃圾邮件”“非垃圾邮件”,在建立预测模型的时候,监督式学习建立一个学习过程,将预测结果与“训练…

    2022年5月8日
    119
  • intellij idea2021激活码【在线注册码/序列号/破解码】

    intellij idea2021激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    46
  • C语言socket实现文件下载[通俗易懂]

    C语言socket实现文件下载[通俗易懂]是网络编程的作业,我比较菜。。。写到定位输出,做百分比出现了问题,不显示0到100的,直接从0跳到了100。请教了下大佬。改了过来。原来是类型的问题,做出来的运算应该是float,但是我都定义的int,输出也是,大佬指出后,我好尴尬。。。犯了小错误。。。但是在这次过程也学习了一波。要加油了!!!代码写的这么乱!!!写的是带颜色的版本,,颜色有可能会觉得妖艳,,,好吧。编译平台是vc++6.0

    2022年7月14日
    15
  • visifire  柱状图控件

    visifire  柱状图控件最近使用到一个柱状图控件visifire用起来还是比较高级的不过会有水印商业用途需要购买正版效果还是很好的还有动画效果能够识别最大高度创建之前需要引用http://note.youdao.com/noteshare?id=4a8d01bd0bfef2cdc86c5752aad3156…

    2022年7月21日
    15
  • 重定向和转发的区别及应用_重定向发给别人能看见吗

    重定向和转发的区别及应用_重定向发给别人能看见吗重定向和转发的区别:一:重定向与转发的区别1.重定向过程:客户端浏览器发送http请求→web服务器接收后发送30X状态码响应及对应新的location给客户浏览器→客户浏览器发现是30X响应,则自动再发送一个新的http请求,请求url是新的location地址→服务器根据此请求寻找资源并发送给客户。//java代码示例response.sendRedirect(“xxx.jsp或者servlet”);2.转发过程:客户端浏览器发送http请求→web服务器接受此请求→

    2025年10月8日
    3
  • jmeter对接口进行压测_jmeter接口压测流程详解

    jmeter对接口进行压测_jmeter接口压测流程详解macjmeter压测工具的安装

    2025年7月7日
    7

发表回复

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

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