您好,登錄后才能下訂單哦!
下圖展示了SpringMVC請求響應的完整流程:
用戶想服務器發出請求,請求被Spring的前端控制器DispatcherServlet截獲。
DispatcherServlet對請求的URL(統一資源定位符)進行解析,得到URI(資源的標識符),根據URI調用HandlerMapping獲得該Handler配置的所有相關對象,包括handler對象以及handler對象對應的攔截器,這些對象會被封裝在一個HandlerExecutionChain對象當中返回。
DispatcherServlet根據獲得的Handler,選擇一個合適的HandlerAdapter。HandlerAdapter用來處理多種Handler,調用Handler實際處理請求的方法比如hello方法。HandlerAdapter的設計符合面向對象中的單一職責原則,代碼架構清晰,便于維護,最為重要的是代碼復用性高。
提取請求中的模型數據,開始執行Handler(Controller).在填充Handler入參過程中,根據配置,Spring將會做一些額外的配置:數據轉換、數據格式化、數據驗證等。
Handler執行完成后,想DispatcherServlet返回一個ModelAndView對象,ModelAndView當中包含視圖名或視圖名和模型。
根據返回的ModelAndView對象,選擇一個合適的ViewResolver返回給DispatcherServlet。
ViewResolver結合Model和View來渲染視圖。
將渲染視圖結果返回給客戶端。
以上8個步驟,完成SpringMVC請求->響應的完整工作流程,其中DispatcherServlet、HandlerMapping、HandlerAdapter以及ViewResolver對于開發者來說都是不可見的,開發者只需要在Handler(Controller)中完成對請求的業務處理。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。