• 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并返回给客户端。

  • 相关阅读:
    mybatis 使用动态SQL
    mybatis 使用resultMap实现关联数据的查询(association 和collection )
    mybatis中的resultMap
    struts2 + ajax + json的结合使用,实例讲解
    destroy-method="close"的作用
    ajax
    Iterator<转>
    实现ajax
    struts返回json
    orm 相关
  • 原文地址:https://www.cnblogs.com/superAnny/p/6496278.html
Copyright © 2020-2023  润新知