zoukankan      html  css  js  c++  java
  • springMVC工作原理趣味解析

    springMVC 涉及的人有:

    1:浏览器

                   2:DispatherServlet

     3:Handler

                4:HandlerAdapter

          5:viewResoler

     

    有人就有关系:

    第一感脚handler和handlerAdapter到底是什么?为什么会有这一对类双胞胎?这里应该涉及的是适配器模式。

    好了解决了这个关系就清楚了:

    一:顾客浏览器大喊,我要view!

    二:这时候大堂经理DispatherServlet慌忙出来,说了一句“稍等,我看看谁在值班(HandlerMapping配置)”发现员工Handler值班,但是此时员工Handle正在吃瓜呢!“尼玛,怎么招了这一个员工?”心里默默的咒骂一句,没办法,只能叫员工Handler的组长HandlerAdapter,“HandlerAdapter快管管员工Handle”

    三:在组长HandlerAdapter教育下,Handler终于做出了东西(ModelAndView)给了大堂经理DispatherServlet

    四:大堂经理DispatherServlet,接过来一看,又在叫员工viewResoler,“快包装一下”

    五:经过Handler  HandlerAdapter  viewResoler的努力下,完美的view终于完成了

    六:大堂经理DispatherServlet,给了浏览器,说“这是你想要的view,久等了”

    上面的是springMVC的工作原理图:

    1、客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet.

    2、DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL、Http方法、请求报文头和请求参数Cookie等)以及HandlerMapping的配置找到处理请求的处理器(Handler)。

    3-4、DispatcherServlet根据HandlerMapping找到对应的Handler,将处理权交给Handler(Handler将具体的处理进行封装),再由具体的HandlerAdapter对Handler进行具体的调用。

    5、Handler对数据处理完成以后将返回一个ModelAndView()对象给DispatcherServlet。

    6、Handler返回的ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherSevlet通过ViewResolver将逻辑视图转化为真正的视图View。

    7、Dispatcher通过model解析出ModelAndView()中的参数进行解析最终展现出完整的view并返回给客户端。

  • 相关阅读:
    Python 入门变量类型标识符和关键字
    对于msSql中exists操作符求值的疑惑
    那个蛋痛的list的remove_if中用到的对像函数
    继承一个虚类的时候要小心是,并使其实例化时.必须使其全实重写了纯虚的方法...类定义的位置
    MSSQL(TSQL)中的varchar不指定大小好像一般来说只有一个的长度
    关于TSQL中触发器的只言片语
    MSSQL十秒一次的job
    用了Rime输入法之后,发现IE要关闭保护模式才能输入
    三性原则,指的是商业银行的“安全性、流动性、效益性
    九选三
  • 原文地址:https://www.cnblogs.com/superAnny/p/6496278.html
Copyright © 2011-2022 走看看