【Java.Spring.MVC】使用Spring MVC構建Web應用程式__Java

來源:互聯網
上載者:User
Spring MVC請求的處理過程

請求會由DispatcherServlet分配給控制器(根據處理器映射來確定)。在控制器完成處理後,接著請求會被發送給一個視圖(根據視圖解析器來確定)來呈現輸出結果:



(1)第一步是 Spring的DispatcherServlet。Spring MVC的所有請求都會通過一個前端控制器Servlet —— DispatcherServlet;DispatcherServlet的任務是將請求發送給Spring MVC控制器; (2)控制器是一個用於處理請求的Spring組件;DispatcherServlet會查詢一個多個處理器映射HandlerMapping來確定請求應該發送給哪個控制器Handler;HandlerMapping根據請求所攜帶的URL資訊來進行決策; (3)選中了控制器Handler之後,DispatcherServlet會將請求發送給選中的Handler;到達了Handler,請求會等待Handler處理請求中的資訊(實際上,Handler本身只處理很少的處理工作,而是將商務邏輯委託給一個或多個服務物件); (4)Handler在完成邏輯處理後,會產生一些資訊Model,這些資訊需要返回給使用者並在瀏覽器上顯示;Handler所做的最後一件事是將Modle資料打包,並且標識出用於渲染輸出的視圖View的名稱。並將請求連同Model和View名稱發送回DispatcherServlet; (5)傳遞給DispatcherServlet的View的名稱並不直接表示某個特定的JSP;它僅僅傳遞了一個邏輯的視圖名,這個名字將會用來尋找產生結果的真正視圖。DispatcherServlet將會使用ViewResolver來將邏輯視圖名匹配為一個特定的View實現,可能也可能不是JSP; (6)最後是將Model資料交付給View,View使用Model資料渲染輸出,並通過這個輸出將響應對象傳遞給用戶端;

Spring MVC簡介

M - Model map會被自動轉換成合適的格式,如JSP中的request attributes, Velocity中的template model


在其他MVC架構中整合Spring

通過配置ContextLoaderListener啟動一個Spring root application context, 然後通過ServletContext擷取這個spring context:

WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(request.getServletContext());



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.