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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 5.6 读和写流

    5.6 读和写流

    2021年8月14日
    50
  • VLAN基础知识_vlan的基本原理

    VLAN基础知识_vlan的基本原理VLAN简介定义:VLAN(VirtualLocalAreaNetwork)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。VLAN内的主机间可以直接通信,而VLAN间不能直接通信,从而将广播报文限制在一个VLAN内。目的:以太网是一种基于CSMA/CD(CarrierSenseMultipleAccess/CollisionDetect…

    2022年8月10日
    7
  • Linux 删除文件夹和文件的命令

    Linux 删除文件夹和文件的命令

    2021年10月14日
    42
  • Linux下export命令和source命令与环境变量设置「建议收藏」

    Linux下export命令和source命令与环境变量设置「建议收藏」Linux下export命令和source命令与环境变量设置环境变量广泛用于程序运行环境的设置。从Linuxshell的角度来看,环境变量无非就是shell脚本的变量而已。从这个角度理解环境变量,就能理解设置环境变量的那些命令究竟在做什么。说明:笔者的系统为debian,shell为bash,以下例子均在笔者的Linux环境下测试,不保证其他环境能够通过。export命令和source命令…

    2022年9月6日
    6
  • 空间向量和矩阵_线性无关的函数内积为零吗

    空间向量和矩阵_线性无关的函数内积为零吗文章目录前言一、集合的基本概念二、向量空间1.运算规则和定理2.RnR^nRn和CnC^nCn三、实内积空间1.内积2.范数四、复内积空间五、线性映射前言本文学习过程来源是《矩阵分析与应用-张贤达》一书.可以通过z-lib下载.线性空间是某一类事物在矩阵代数里的一个抽象的集合表示,线性映射或线性变换则反映线性空间中元素间最基本的线性关系.上面这句话出自书中第14页开头,读下来第一感觉就是云里雾里,毕竟出现了新的名称.对于线性空间可以简单的把它理解为几何空间(实际上不仅仅

    2022年10月21日
    1
  • 安可系统对接必须java_无法运行安可开发「建议收藏」

    当我想使用纱线运行安可开发时为什么我有这个错误?当我想添加sass时,我得到警告“>sass-loader@6.0.7”有未满足的对等依赖“webpack@^2.0.0||^3.0.0||^4.0.0”.但为什么?Symfony4.我无法从github安装这个模块npminstall–savechild_processfork-ts-checker-webp…

    2022年4月6日
    63

发表回复

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

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