spring mvc也是依賴servlet,所以spring mvc的請求處理是從乙個servlet開始,這個servlet就是dispatcherservlet。
前端控制器模式(front controller pattern)是用來提供乙個集中的請求處理機制,所有的請求都將由乙個單一的處理程式處理。該處理程式可以做認證/授權/記錄日誌,或者跟蹤請求,然後把請求傳給相應的處理程式。
前端控制器(front controller) - 處理應用程式所有型別請求的單個處理程式,應用程式可以是基於 web 的應用程式,也可以是基於桌面的應用程式。
排程器(dispatcher) - 前端控制器可能使用乙個排程器物件來排程請求到相應的具體處理程式。
檢視(view) - 檢視是為請求而建立的物件。
1. 使用者向伺服器傳送請求,請求被spring 前端控制servelt dispatcherservlet捕獲;
3. dispatcherservlet 根據獲得的handler,選擇乙個合適的handleradapter。(附註:如果成功獲得handleradapter後,此時將開始執行***的prehandler(...)方法)
4. 提取request中的模型資料,填充handler入參,開始執行handler(controller)。 在填充handler的入參過程中,根據你的配置,spring將幫你做一些額外的工作:
httpmessageconveter: 將請求訊息(如json、xml等資料)轉換成乙個物件,將物件轉換為指定的響應資訊
資料轉換:對請求訊息進行資料轉換。如string轉換成integer、double等
資料根式化:對請求訊息進行資料格式化。 如將字串轉換成格式化數字或格式化日期等
資料驗證: 驗證資料的有效性(長度、格式等),驗證結果儲存到bindingresult或error中
5. handler執行完成後,向dispatcherservlet 返回乙個modelandview物件;
6. 根據返回的modelandview,選擇乙個適合的viewresolver(必須是已經註冊到spring容器中的viewresolver)返回給dispatcherservlet ;
7. viewresolver 結合model和view,來渲染檢視
8. 將渲染結果返回給客戶端。
springmvc前端控制器心得
初次接觸springmvc,在使用過程中對前端控制器有點迷茫,現在記錄下來。前端控制器本質上是乙個servlet,遵循servlet規則 servlet規則如下 action 首先如果訪問url不存在對應對映時候,返回404 如果配置了 則稱為預設servlet 訪問url不存在時候,跳轉到該url...
springMVC前端控制器路徑問題
org.springframework.web.context.contextloaderlistener listener class listener servletnameservlet name org.springframework.web.servlet.dispatcherservle...
SpringMVC 前端控制器的配置 day2
這個servlet的名字我們定義成 springmvc型別是 也就是說這個是乙個dispatcherservlet,是前端控制器 org.springframework.web.servlet.dispatcherservlet在這裡可以配置載入springmvc這個前端控制器的配置檔案,可以是乙個...