JavaEE體系架構包含四層,由上到下分別是應用層、Web層、業務層、持久層。 Struts和SpringMVC是Web層的框架,Spring是業務層的框架,Hibernate和MyBatis是持久層的框架。
為什麼要使用SpringMVC?
許多應用程式的問題在於處理業務資料的物件和顯示業務資料的視圖之間存在緊密耦合,通常,更新業務物件的命令都是從視圖本身發起的,使視圖對任何業務對象變更都有高度敏感度。而且,當多個視圖依賴同一個業務物件時是沒有彈性的。
SpringMVC是一種基於Java,實現了Web MVC設計模式,請求驅動類型的輕量級Web框架,即使用了MVC架構模式的思想,將Web層進行職責解耦。基於請求驅動指的就是使用請求-回應模型,框架的目的就是幫助我們簡化開發,SpringMVC也是要簡化我們日常Web開發。
MVC設計模式
MVC設計模式的任務是將包含業務資料的模組與顯示模組的檢視解耦。這是怎麼發生的?在模型和視圖之間引入重定向層可以解決問題。此重定向層是控制器,控制器將接收請求,執行更新模型的操作,然後通知視圖關於模型變更的訊息。
具體流程:
(1)首先使用者發送請求->DispatcherServlet,前端控制器收到請求後自行處理,而是委託給其他的解析器進行處理,作為統一存取點,進行全域的流程控制;
(2)DispatcherServlet->HandlerMapping,處理器映射器會將請求對應為HandlerExecutionChain物件(包含一個Handler處理器物件、多個HandlerInterceptor攔截器)物件;
(3)DispatcherServlet——>HandlerAdapter,處理器適配器將會把處理器包裝為適配器,從而支援多種類型的處理器,即適配器設計模式的應用,因此很容易支援許多類型的處理器;
(4)HandlerAdapter——>呼叫處理器對應功能處理方法,並傳回一個ModelAndView物件(包含模型資料、邏輯視圖名);
(5)ModelAndView物件(Model部分是業務物件傳回的模型數據,View部分為邏輯視圖名稱)—> ViewResolver, 視圖解析器將把邏輯視圖名稱解析為具體的View;
(6)View——>渲染,View會根據傳進來的Model模型資料進行渲染,此處的Model實際上是一個Map資料結構;
#(7)返回控制權給DispatcherServlet,由DispatcherServlet回傳回應用戶,到此流程結束。
以上是springmvc是什麼框架的詳細內容。更多資訊請關注PHP中文網其他相關文章!