1. 程式人生 > 其它 >SpringMVC學習筆記01-----SpringMVC簡介

SpringMVC學習筆記01-----SpringMVC簡介

1.什麼是SpringMVC?

1.1 概述

Spring MVC是Spring Framework的一部分,是基於Java實現MVC的輕量級Web框架。

1.2 為什麼選擇SpringMVC?

  • 輕量級,簡單易學
  • 高效 , 基於請求響應的MVC框架
  • 與Spring相容性好,無縫結合
  • 約定優於配置
  • 功能強大:RESTful、資料驗證、格式化、本地化、主題等
  • 簡潔靈活
  • 最重要的一點,還是使用的人多

SpringMVC的核心是DispatcherServlet(排程servlet).DispatcherServlet會自動將不同的請求分配給對應的處理器。

1.3 排程Servlet(DispatcherServlet)

Spring的web框架圍繞DispatcherServlet設計。DispatcherServlet的作用是將請求分發到不同的處理器。

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

1.4SpringMVC執行原理分析

圖為SpringMVC的一個較完整的流程圖,實線表示SpringMVC框架提供的技術,不需要開發者實現,虛線表示需要開發者實現。

簡要分析執行流程

  • DispatcherServlet表示前置控制器,是整個SpringMVC的控制中心。使用者發出請求,DispatcherServlet接收請求並攔截請求。
    我們假設請求的url為 :

    http://localhost:8080/SpringMVC/hello

    如上url拆分成三部分:

    http://localhost:8080伺服器域名

    SpringMVC部署在伺服器上的web站點

    hello表示控制器

    通過分析,如上url表示為:請求位於伺服器localhost:8080上的SpringMVC站點的hello控制器。

  • HandlerMapping為處理器對映。DispatcherServlet呼叫HandlerMapping,HandlerMapping根據請求url查詢Handler。

  • HandlerExecution表示具體的Handler,其主要作用是根據url查詢控制器,如上url被查詢控制器為:hello。

  • HandlerExecution將解析後的資訊傳遞給DispatcherServlet,如解析控制器對映等。

  • HandlerAdapter表示處理器介面卡,其按照特定的規則去執行Handler。

  • Handler讓具體的Controller執行。

  • Controller將具體的執行資訊返回給HandlerAdapter,如ModelAndView。

  • HandlerAdapter將檢視邏輯名或模型傳遞給DispatcherServlet。

  • DispatcherServlet呼叫檢視解析器(ViewResolver)來解析HandlerAdapter傳遞的邏輯檢視名。

  • 檢視解析器將解析的邏輯檢視名傳給DispatcherServlet。

  • DispatcherServlet根據檢視解析器解析的檢視結果,呼叫具體的檢視。

  • 最終檢視呈現給使用者。

簡而言之就是DispatcherServlet接收到使用者的請求之後,首先交給處理器對映器,處理器對映器將解析出來的結果再返回給DispatcherServlet,DispatcherServlet再呼叫對應的處理器介面卡,找到對應的控制器(即Controller)處理對應業務流程,控制器將具體的執行資訊返回給DispatcherServlet(如modelAndView),執行資訊如果包含檢視相關內容,DispatcherServlet會呼叫檢視解析器,檢視解析器將解析的邏輯檢視名傳給DispatcherServlet,DispatcherServlet根據檢視解析器解析的檢視結果,呼叫具體的檢視,並渲染資料,最後將結果返還給使用者。