• spring mvc 框架运行机制 + 数据绑定原理


    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]”

  • 相关阅读:
    【JavaScript&jQuery】$.ajax()
    【JavaScript&jQuery】5秒跳转
    【数据库_Mysql】Mysql知识汇总
    【Java】时间转json格式化
    【Java】数组升序和降序
    【Java】关于@RequestBody
    未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项.试图加载格式不正确的程序
    IIS 7.0、IIS 7.5 和 IIS 8.0 中的 HTTP 状态代码 转
    在IIS7.5上添加.NET4.0程序的虚拟目录时提示ASP.NET 4.0尚未在 Web 服务器上注册
    VC2010 _com_error 返回的错误信息
  • 原文地址:https://www.cnblogs.com/helloqiufei/p/10757424.html
Copyright © 2020-2023  润新知