本篇文章給大家分享的是有關什么是Spring MVC的生命周期,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
首先,瀏覽器會發送請求,我們的項目通過spring中的一個叫做dispatcherServlet名字的一個servlet來接收請求.
這個Servlet接收請求后 會驗證是否是第一次加載這個Servlet。如果是第一次加載這個Servlet 則此時dispatcherServlet會做一些初始化操作。
dispatcherServlet會初始化HandlerMapping(注:通過它來處理客戶端請求到各個Controller處理器的映射)
dispatcherServlet會初始化HandlerAdapter(注:HandlerMapping會根據它來調用Controller里需要被執行的方法)
dispatcherServlet會初始化handlerExceptionResolver(注:spring mvc處理流程中,如果有異常拋出,會交給它來進行異常處理)
dispatcherServlet會初始化ViewResolver (注:HandlerAdapter會把Controller中調用返回值最終包裝成
ModelAndView,ViewResolver會檢查其中的view,如果view是一個字符串,它就負責處理這個字符串并返回一個真正的View,如果
view是一個真正的View則不會交給它處理)
上述這些都初始化完畢后 然后dispathcerServlet會開始查詢一個或者多個handlerMaprring 來將請求映射到一個控制器對象
如果此時沒有找到一個控制器對象 則會拋出異常
如果找到了一個控制器對象 那么這個請求會經過一個攔截器鏈的preHandle處理 通過handlerAdapter來匹配到控制器對象的具體方法
然后這個方法中會根據我們的業務邏輯來處理請求 完成業務邏輯的處理后 控制器會得到一個ModelAndView對象(注:這個類中的vie
這個屬性是 Object 類型的,它可以是一個視圖名也可以是一個實際的View)得到這個ModelAndView后 spring會判斷ModelAndView的viewName是否是String類型
如果是String類型 則直接調用ModelAndView的getView方法 然后找到對應的頁面 然后將信息返回給DispatcherServlet
如果不是string類型 然后會根據viewName到ViewResolver中去找到這個名稱 然后確定其對應的頁面 然后將頁面返回給dispatcherserlvet
最后dispatcherSerlvet會將得到頁面返回給瀏覽器。

以上就是什么是Spring MVC的生命周期,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。