SpringMvc工作原理学习总结

SpringMvc工作原理学习总结SpringMvc工作原理了解SpringMvc之前先看看Mvc的工作原理1、MVC工作原理M:Model(完成业务逻辑Service/dao/entity/)V:View(完成界面渲染jsp/html)C:Controller(控制器->类似于CPU接受请求->调用M->返回V)MVC工作原理图2、SpringMvc工作原理Spring和SpringMvc的关系:SpringMVC是一个MVC的开源框架,SpringMVC是Spring的一个

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

SpringMvc工作原理

了解SpringMvc之前先看看Mvc的工作原理

1、MVC工作原理

  1. M:Model(完成业务逻辑 Service/dao/entity/)

  2. V:View(完成界面渲染 jsp/html)

  3. C:Controller(控制器->类似于CPU 接受请求->调用M->返回V)

  4. MVC工作原理图

    image-20201107103726612

    2、SpringMvc工作原理

    1. Spring和SpringMvc的关系:

      SpringMVC是一个MVC的开源框架,SpringMVC是Spring的一个后续产品,其实就是Spring在原有基础上,又提供了web应用的MVC模块,可以简单的把SpringMVC理解为是spring的一个模块(类似AOP,IOC这样的模块),网络上经常会说SpringMVC和Spring无缝集成,其实SpringMVC就是Spring的一个子模块,所以根本不需要同spring进行整合。

    2. SpringMVC中的组件:

      • 前端控制器(DispatcherServlet):接收请求,响应结果,相当于电脑的CPU。

        处理器映射器(HandlerMapping):根据URL去查找处理器

        处理器(Handler):(需要程序员去写代码处理逻辑的)

        处理器适配器(HandlerAdapter):会把处理器包装成适配器,这样就可以支持多种类型的处理器,类比笔记本的适配器(适配器模式的应用)

        视图解析器(ViewResovler):进行视图解析,多返回的字符串,进行处理,可以解析成对应的页面

    3. SpringMvc工作原理图

      SpringMvc工作原理学习总结

    4. SpringMvc工作流程

      • 第一步:用户发起请求到前端控制器(DispatcherServlet)

        第二步:前端控制器请求处理器映射器(HandlerMappering)去查找处理器(Handle):通过xml配置或者注解进行查找

        第三步:找到以后处理器映射器(HandlerMappering)像前端控制器返回执行链(HandlerExecutionChain)

        第四步:前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行处理器(Handler)

        第五步:处理器适配器去执行Handler

        第六步:Handler执行完给处理器适配器返回ModelAndView

        第七步:处理器适配器向前端控制器返回ModelAndView

        第八步:前端控制器请求视图解析器(ViewResolver)去进行视图解析

        第九步:视图解析器像前端控制器返回View

        第十步:前端控制器对视图进行渲染

        第十一步:前端控制器向用户响应结果

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

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

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


相关推荐

  • ajax跨域问题(三种解决方案)

    ajax跨域问题(三种解决方案)

    2021年11月5日
    46
  • 数据的本质是什么?数据的表现形式有哪些?_大数据本质是什么答案

    数据的本质是什么?数据的表现形式有哪些?_大数据本质是什么答案2010年,“数据科学家”这个称谓的发明者帕蒂尔(DJPatil)和杰夫·哈默巴赫(JeffHammerbacher)认为,一切应该以产品为中心,从数据获取、数据清洗、搭建和管理数据设施、原型开发、产品设计等方面,去实践数据的价值。一、一场以大数据为核心的智能盛宴时下仿佛大家都在谈人工智能,就像当年人人都在谈大数据一样。在不同场合上,阿里巴巴的马云、百度的李彦宏及腾讯的马化腾分别谈过自己…

    2022年10月5日
    0
  • jdk下载/Linux64位 jdk1.8 jdk-8u161下载[通俗易懂]

    jdk下载/Linux64位 jdk1.8 jdk-8u161下载[通俗易懂]Linux64位jdk1.8jdk-8u161-linux-x64.tar.gzjdk1.8jdk-8u161-linux64看到在csdn下载这个jdk1.88u161版本的都要积分,就去官网下载了一个放云盘jdk1.88u161百度云盘下载链接:https://pan.baidu.com/s/18IicPYf7W0j-sHBXvfKyyg下载jdk的oracle官网:http…

    2022年7月16日
    36
  • 两数之和c语言实现[通俗易懂]

    两数之和c语言实现[通俗易懂]int*twoSum(int*nums,intnumsSize,inttarget,int*returnSize){inti=0,j=0;*returnSize=2;int*a=(int*)malloc(sizeof(int)*2);for(i=0;i<numsSize;i++)…

    2022年6月13日
    29
  • 浮动工具栏在哪里_设置面板的布局方式为边界布局

    浮动工具栏在哪里_设置面板的布局方式为边界布局使用BCG界面库,工具栏的一些用法就和MFC不一样了,MFC的CFrameWnd直接有一个设置浮动工具条位置的函数可以调用,而BCG没有,因为其对于TOOLBAR的底层实现和MFC那一套实现流程完全不同。BCG库的代码设置浮动工具栏的位置,又折腾了我几个小时,通过看其源码加改调用函数改参数调试,最后终于出来了,也不知此法好不好。代码如下: voidCMainFrame::RePos

    2022年10月8日
    0
  • 嵌入式系统基础知识——之嵌入式微处理器体系结构(1.2)「建议收藏」

    嵌入式系统基础知识——之嵌入式微处理器体系结构(1.2)「建议收藏」1.2嵌入式微处理器体系结构1.2.1 冯诺依曼与哈弗结构1、冯诺依曼结构也称为普林斯顿结构,即程序将指令存储器和数据存储器合并在一起的存储结构,程序与数据公用1个存储空间,只是程序指令存储地址与数据存储地址指向同一存储器的不同物理地址;采用单一的地址及数据总线,程序指令与数据的宽度相同,在告诉运算时,传输通道上存在着瓶颈效应。主要包括:英特尔的8086,ARM7、MIPS等微

    2022年9月28日
    0

发表回复

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

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