《深入理解SpringMVC思想》
前言:
SpringMVC是一種基於MVC架構的用於簡化web應用程式開發的應用開發框架,它是spring的一個模組,與spring緊密結合,無需中間整合層來整合,它和struts2一樣都是表現層框架。在web模型中,mvc是很流行的框架,通過將model、view、controller分離,減少開發,減少出錯,方便組內開發人員之間的協同工作。
正文:
一。SpringMVC應用的開發步驟
1.在web.xml中定義前端控制器Dispatcherservlet
<servlet> <servlet-name>action</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:web/spring/spring.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
Dispatcherservlet是SpringMVC的核心入口類,負責處理分發客戶端傳送的請求,使用檢視來最終相應客戶端的請求。struts1的核心入口類是ActionServlet,struts2的核心入口類是StrutsParperAndExecuteFilter。
2.如果是POST請求,則需要開發表單提交的JSP頁面,如果是GET請求,則可以跳過這一步。
3.定義處理使用者請求的Handle類,通過實現Controller介面或者使用@Controller註解
4.當servlet攔截使用者請求後,讓servlet知道建立哪個Controller介面的例項有兩種解決方案:
(1)利用xml配置檔案
<!--配置Handle,對映“/hello請求”>
<bean name="/hello" class="org.fkit.controller.HelloController"/>
(2)Spring2.5之後,推薦使用註解來配置Handle
@Controller
public class DatumManagerController {}
5.編寫檢視資源
當Handler處理使用者請求結束後,通常會返回一個ModelAndView物件,該物件中包含返回的檢視名或檢視名和模型,這個檢視名就代表需要顯示的物理檢視資源。如果Handler需要把一些資料傳給檢視資源,就可以通過模型物件。
二。SpringMVC執行的流程?
說明:
1.使用者向伺服器傳送請求,請求被SpringMVC的核心入口類Dispatcherservlet截獲
2.Dispatcherservlet對請求的URL(統一資源定位符)進行解析,得到URI(資源識別符號),根據該URI,呼叫HandlerMapping得到Handler的所有相關的物件,包括Handler物件以及該物件的攔截器,包裝成HandlerExecutionChain物件統一返回給Dispatcherservlet
3.Dispatcherservlet根據得到的Handler,選擇一個合適的HandlerAdapter,處理實際的業務邏輯
4.提取請求中的模型資料,開始執行Handler,在填充Handler的入參過程中,根據配置,spring會做一些額外的工作:
(1)訊息轉換 (2)資料轉換 (3)資料格式化 (4)資料驗證
5.Hander執行完畢之後,會向Dispatcherservlet返回一個ModerlAndView物件,該物件應該包含檢視名或檢視名和模型。
6.根據返回的ModelAndView,選擇一個合適的ViewReslover(檢視解析器)返回給Dispatcherservlet
7.ViewReslover結合model和view渲染檢視
8.Dispatcherservlet將檢視渲染結果返回給客戶端。
結語: