zoukankan      html  css  js  c++  java
  • SpringMVC执行流程分析

    一. 

    1.客户端发送请求,给前端控制器;

    2.前端控制器最终目的是要调用处理器(也就是我写的Controller类),它首先经过处理器映射器(HandlerMapping)查找处理器(Handler),通过请求路径的url去匹配,找到之后,返回一个处理器执行链(HandlerExcutorChain,里面包含n个拦截器(如果存在的话)以及找的处理器(Handler)),返回给前端控制器;

    3.前端控制器会调用处理请求,但是它不是自己去调用,而是通过处理器适配器(HandlerAdapter),去调用我的处理器(Handler)方法 ,我的Controller方法会返回ModelAndView给前端控制器;补充:ModelAndView包括两部分:一是model:模型数据;而是view:跳转的页面;

    4.前端控制器不会自己去处理这个ModelAndView,而是交个视图解析器(ViewResolver),视图解析器进行解析,返回一个视图对象(也就是值返回view)给前端控制器;

    5.前端控制器找视图,把这个model填充(渲染)到视图中,这个视图就相当于一个html源代码;

    6.最后将html源代码展示在浏览器中

    这样做的原因是:体现解耦性;

    总结:

     二. 源码分析SpringMVC执行流程

    1.首先,从DispatcherServlet开始,本质是一个Servlet,所以,我们应该从service方法入手;service方法存在于DispacherServlet的父类FrameworkServlet中。主要是分析doDispatcher方法

  • 相关阅读:
    httpsqs消息队列
    Memcache 配置和使用
    nyist 68三点顺序
    nyist 67三角形面积
    rwkj 1363 正方形 长方形 三角形面积
    rwkj 1359 友元:两点距离
    rwkj 1357 矩形--面积-周长
    rwkj 1356 点与矩形
    rwkj 1354 圆周长与面积
    rwkj 1327 圆柱体体积
  • 原文地址:https://www.cnblogs.com/panbin/p/11341526.html
Copyright © 2011-2022 走看看