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. easyUI dataGrid主从表点击展开问题

    昨天在公司写代码遇到了一个问题,就是在用easyUI做主从表的时候在查询之后点击展开的时候不能再次展开了.先说一下主从表我也是第一次用 效果如下图: 然后点击前面的小加号出现以下效果: 然而遇到了一个 ...

  2. 用Django加PIL做一个证件照模板生成器网页

    最近在整理自己的简历,发现简历上面的ID照有些太老了,所以就准备重新准备一些证件照,刚好最近在弄自己的博客网站,想着直接做一个网页工具出来,直接生成证件照模板,这样还可以省去PS的麻烦.而且照片涉及到 ...

  3. 双系统,重装windows 无法进入Windows安装界面

    解决办法 windows引导并没有被更新 进入linux 更新grub sudo update-grub 然后重启电脑,进行下一步安装 原理 grub是引导操作系统的程序,它会根据自己的配置文件,去引 ...

  4. 对接百度地图API 实现地址转经纬度

    <?php class BaiduLBS { public static $_ak = '你的KEY值'; # Util::request 是我封装的一个请求URL类,自己可以写一个 可以提交 ...

  5. OAuth2.0概念以及实现思路简介

    一.什么是OAuth? OAuth是一个授权规范,可以使A应用在受限的情况下访问B应用中用户的资源(前提是经过了该用户的授权,而A应用并不需要也无法知道用户在B应用中的账号和密码),资源通常以REST ...

  6. 830. String Sort

    830. String Sort 题解 int alpha[256] = {0};//记录字符的次数 bool cmp(char a,char b) { if(alpha[a]==alpha[b])/ ...

  7. Shell脚本传递带有空格的参数

    在另一博文<Shell脚本实现DB2数据库表导出到文件>中实现了通过脚本实现将DB2数据库导出到文件,需要传入七个参数,最后一个是一个带有空格字符串,所以传入的时候有点问题,会自动识别空格 ...

  8. Redis系列之----Redis的两种持久化机制(RDB和AOF)

    Redis的两种持久化机制(RDB和AOF) 什么是持久化    Redis的数据是存储在内存中的,内存中的数据随着服务器的重启或者宕机便会不复存在,在生产环境,服务器宕机更是屡见不鲜,所以,我们希望 ...

  9. Java控制台五子棋(纯算法)

    Java五子棋小游戏 本方案是基于控制台写的一个代码 没有花里胡哨的界面,只为研究算法 仅仅用了200行代码 下面是的是运行结果 游戏运行结果 这里我就很简单的复制了一个结果 第9回合,下子方:玩家2 ...

  10. python利用sift和surf进行图像配准

    1.SIFT特征点和特征描述提取(注意opencv版本) 高斯金字塔:O组L层不同尺度的图像(每一组中各层尺寸相同,高斯函数的参数不同,不同组尺寸递减2倍) 特征点定位:极值点 特征点描述:根据不同b ...