<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SpringMVC執(zhí)行流程

          共 1355字,需瀏覽 3分鐘

           ·

          2021-04-10 10:51

          點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號”

          優(yōu)質(zhì)文章,第一時(shí)間送達(dá)

            作者 |  余月七 (杜)

          來源 |  urlify.cn/E32aae

          簡單原理

          Spring MVC 框架像許多其他 MVC 框架一樣, 以請求為驅(qū)動(dòng) , 圍繞一個(gè)中心 Servlet 分派請求及提供其他功能DispatcherServlet 是一個(gè)實(shí)際的 Servlet (它繼承自 HttpServlet 基類)

          當(dāng)發(fā)起請求時(shí)被前置的控制器攔截到請求,根據(jù)請求參數(shù)生成代理請求,找到請求對應(yīng)的實(shí)際控制器,控制器處理請求,創(chuàng)建數(shù)據(jù)模型,訪問數(shù)據(jù)庫,將模型響應(yīng)給中心控制器,控制器使用模型與視圖渲染視圖結(jié)果,將結(jié)果返回給中心控制器,再將結(jié)果返回給請求者


          簡單的執(zhí)行流程

          1.DispatcherServlet表示一個(gè)前端控制器,是整個(gè)SpringMVC的控制中心。

          當(dāng)用戶發(fā)出請求,DispatchServlet接收請求并攔截請求。



            • 我們假設(shè)請求的 url 為 : http://localhost:8080/SpringMVC/hello


            • 如上 url 拆分成三部分:


            • http://localhost:8080 ------> 服務(wù)器域名


            • SpringMVC ------> 部署在服務(wù)器上的 web 站點(diǎn)


            • hello ------> 表示控制器


            • 通過分析,如上 url 表示為:請求位于服務(wù)器 localhost:8080 上的 SpringMVC 站點(diǎn)的 hello 控制器

          2.HandlerMapping表示處理器映射,所以DispatchSerlvet去調(diào)用HandlerMapping,然后HandlerMapping根據(jù)url去查找Handler

          3.HandlerExcution表示具體的Handler,主要作用是根據(jù)URL去找控制器。

          4.HandlerExcution將解析后的信息傳遞給DispatcherServlet。

          5.HandlerAdapter表示處理器適配器,它是按照特定的規(guī)則去執(zhí)行Handler

          6.Handler讓具體的Controller執(zhí)行。

          7.Controller將具體的執(zhí)行信息返回給HanderAdapter,比如ModelAndView。

          8.HandlerAdapter將視圖邏輯名或模型傳遞給DispatcherServlet。

          9.DispatcherServlet調(diào)用視圖解析器(ViewResolver)來解析HandlerAdapter傳遞的邏輯視圖名。

          10.視圖解析器將解析的邏輯視圖名傳遞給DispatcherServlet。

          11.DispatcherServlet根據(jù)視圖解析器解析的視圖結(jié)果,調(diào)用具體的視圖。

          12.最后呈現(xiàn)給用戶。




          粉絲福利:Java從入門到入土學(xué)習(xí)路線圖

          ??????

          ??長按上方微信二維碼 2 秒


          感謝點(diǎn)贊支持下哈 

          瀏覽 78
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  夜夜干视频 | 日韩AV免费在线观看 | 免费无码一级A片大黄在线观看 | 操熟女视频 | 99免费视频 |