spring mvc 运行主要的组件:

1 前端控制器 (dispatchservlet) 相当于一个重要处理器,它用来调用其他功能模块来分工的效应一次请求,主要起调度的作用。

2. handler 映射器 : 用于前端控制器发送给他的url 找到 用于处理这个url 的 handler(controller) 找个这个controller 的名字之后,将该controller 的名字返回给 前端控制器

问题:返回的东西不只有这一个名字,还有别的东西。

3.  handle 处理器: 用于将前端处理器发送给他的handler(controller )的名字, 去在handler(controller)里面去找,然后按照 我自己的规则去执行这个handler,执行完之后返回的是一个modelandview 的对象,然后将这个对象 发送给前端处理器。

4. 视图解析器: 用于将前端发送给他的一个视图(如jsp freemarker)的名字,解析为真正的视图。

俗语: 我(前端控制器) 虽然自己的没有什么特别的能力, 但是我会用人, 我手下有三元大将, 大将军(handler 映射器)帮我帮我寻找到底是哪个controller 可以帮我处理这次浏览器的威胁,二将军(handle处理器) 帮我将 controller 运算一遍转换成真正的处理结果, 三将军(视图解析器) 帮我将一个 视图的名字,给我解析成一个真正的视图。

整体的工作流程如下:                               

流程:浏览器发出危险行为, 首领(disaptchservlet) 询问 大将军(handlerMapping) “我该如何迎战”, 大将军拿出来先前想出的计谋(xml 配置文件)说“主公, 你看这个计谋(handler)可以解决危险”, 首领(disptchservlet) 招呼 二将军(handleradapter):“快快将此条计谋(handler)取出来, 演示一遍让我看看”, 二将军找到这条计谋,自己思考(执行)了一遍, 说“主公, 可以使用这套阵法(view),以及这套装备(model) 解决危险”。 首领 “ 特好, 三将军(viewresolver)快帮我将整套阵法(view)取出来,让我看看”  三将军取出 阵法(view)交由主公, 首领“ 有了阵法, 给士兵们配上这套装备(model) 就能解决问题了”

数据绑定:

                          

前端form表单里面提交的数据会以键值对的形式存放在servletrequest 里面, springmvc 会将这些 “键” 名字, 和我将要处理此次request 的方法的形参进行绑定赋值。所以运行

的机制是依据处理方法里面入参的属性值去找servletrequest  里面的键值对 去找和我匹配的,找到匹配的就拿过来注入。所以前端的“键”的名字很关键,必须和入参属性两者一致。

俗语: 找呀找呀找朋友, 我两名字是一致, 我们就是朋友,我在家里是user.name[0],  我的朋友也必须叫“user.name[0]”

spring mvc 框架运行机制 + 数据绑定原理的更多相关文章

  1. spring MVC框架入门(外加SSM整合)

    spring MVC框架 一.什么是sping MVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 W ...

  2. Spring MVC 框架搭建及具体解释

    如今主流的Web MVC框架除了Struts这个主力 外.其次就是Spring MVC了,因此这也是作为一名程序猿需要掌握的主流框架.框架选择多了.应对多变的需求和业务时,可实行的方案自然就多了. 只 ...

  3. 手写Spring MVC框架(一) 实现简易版mvc框架

    前言 前面几篇文章中,我们讲解了Spring MVC执⾏的⼤致原理及关键组件的源码解析,今天,我们来模仿它⼿写⾃⼰的mvc框架. 先梳理一下需要实现的功能点: tomcat加载配置文件web.xml: ...

  4. 手写Spring MVC框架(二) 实现访问拦截功能

    前言 在上一篇文章中,我们手写了一个简单的mvc框架,今天我们要实现的功能点是:在Spring MVC框架基础上实现访问拦截功能. 先梳理一下需要实现的功能点: 搭建好Spring MVC基本框架: ...

  5. 4-3 Spring MVC框架-02

    Spring MVC框架-02 Ⅰ.RESTful基础 是一种设计风格和开发方式 1.get和post请求区别: get post 获取请求 上传请求 请求参数在地址栏URL 请求参数在请求体里面 U ...

  6. Spring MVC 框架的架包分析,功能作用,优点

    由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或是软件架构师,在学习和了解一个框架的时候,首先都应该知道的是这个框架的原理和与其有关j ...

  7. Spring mvc框架 controller间跳转 ,重定向 ,传参

     一.需求背景     1. 需求:spring MVC框架controller间跳转,需重定向.有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示.   @Req ...

  8. spring mvc 框架搭建及详解

    现 在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不 ...

  9. <转>ASP.NET学习笔记之理解MVC底层运行机制

    ASP.NET MVC架构与实战系列之一:理解MVC底层运行机制 今天,我将开启一个崭新的话题:ASP.NET MVC框架的探讨.首先,我们回顾一下ASP.NET Web Form技术与ASP.NET ...

随机推荐

  1. Excel单元格的日常操作

    通过右键选择插入来移动单元格 灵活的运用"整行" 与 "整列" 选中区域之后 通过点击区域边框进行移动 按住shift之后框会变成线 更容易拖动 按住ctrl拖 ...

  2. Visio日程安排图

    黄日历: 怎么创建呢? 首先找到日程安排图表 然后找到日历 这就是日历的形状模块 拖动“日”日历形状进行创建 创建好的日历通过右键单击选择"配置"来修改日期 这是周日历 与日日历不 ...

  3. 基于TDengine-ver-1.6.4.4在windows 10下cmake+msys2编译(windows cgo 使用)

    目录 基于TDengine-ver-1.6.4.4在windows 10下cmake+msys2编译(windows cgo 使用) 背景 下载地址 仓库地址 安装部署 msys2 安装 配置环境变量 ...

  4. java面试-泛型

    1.什么是泛型?泛型有什么作用?   泛型就是参数化类型,也就是所操作的数据类型被指定为一个参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法.   在泛型出现之前, ...

  5. $loj6043$ [雅礼集训 $2017\ Day7$] 蛐蛐国的修墙方案 搜索

    正解:搜索 解题报告: 传送门$QwQ$ 首先由$p_i$是一个序列得,每个点的度数为2.且一定形成若干个环. 考虑先对每个环做,发现若要有解必须是偶环,且一定是隔一条边选一条边的,所以对每个环其实只 ...

  6. JAVA的引用类型

    一.强引用 JAVA默认的引用类型,强引用,是在我们的开发工作当中普遍存在的.如果一个对象具有强引用,当内存空间不足的时候,java虚拟机宁可抛出OOM异常,也不会回收它来释放内存.但是我们可以将对象 ...

  7. shell脚本一键配置本地yum源

    效果如图: #!/bin/bash #Author:GaoHongYu #QQ: #Time:-- :: #Name:yumgz.sh #Version:V1. CKGZ=$( df -Th | gr ...

  8. HR系列GPS北斗时间同步服务器在电力系统典型应用

    HR系列GPS北斗时间同步服务器在电力系统典型应用 时间同步系统主要由主时钟.若干从时钟.时间信号传输介质组成.根据时间同步现场的不同要求,时间同步系统的结构配置有多种形式,主要分为三种:基本式.主从 ...

  9. UML之类之间的关系

    UML 简介 统一建模语言(Unified Modeling Language,UML) 作用:对软件系统进行说明 如果说软件系统是一本小说的话,那么 UML 就是将小说动漫化. 也许你看过这本小说, ...

  10. 避免在ASP.NET Core 3.0中为启动类注入服务

    本篇是如何升级到ASP.NET Core 3.0系列文章的第二篇. Part 1 - 将.NET Standard 2.0类库转换为.NET Core 3.0类库 Part 2 - IHostingE ...