我們都在使用springmvc,那麼springmvc處理乙個請求的大致流程是怎樣的呢?請看下面圖所示:
文字描述的話大致是這樣的乙個流程:
我們看一下springmvc我們提供好的一些東西:
預設的實現類是:org.springframework.web.servlet.handler.
handleradapter允許使用任意的處理器介面。
前端控制器中的異常處理策略是通過handlerexceptionresolver來解決的,例如對映某乙個確定的異常到錯誤頁面。
預設的異常處理類是:org.springframework.web.servlet.mvc.annotation.annotationmethodhandlerexceptionresolver、org.springframework.web.servlet.mvc.annotation.responsestatu***ceptionresolver、org.springframework.web.servlet.mvc.support.defaulthandlerexceptionresolver
handlerexceptionresolver可以通過應用上下文被重寫。它在應用上下文中也是被定義為了乙個bean。
視**析策略可以通過指定乙個viewresolver的實現類來將相應的檢視名字解析成檢視物件。
預設的實現類是org.springframework.web.servlet.view.
internalresourceviewresolver。
同樣的viewresolver在應用上下文中被定義為乙個bean。
如果乙個檢視或者檢視名沒有被使用者提供的話,可以通過配置requesttoviewnametranslator來將當前的請求轉換為乙個檢視名。
預設的實現類是org.springframework.web.servlet.view.
defaultrequesttoviewnametranslator。
它在應用上下文中的bean的名字是
viewnametranslator。
通過multipartresolver的實現類我們可以解決multipart requests。
我們通常選擇的實現類是org.springframework.web.multipart.commons.
commonsmultipartresolver。這個實現包含了apache commons fileupload and servlet 3 。
multipartresolver的bean名字是
multipartresolver,沒有預設的實現類,我們如果要使用這個功能的話,需要在配置檔案中進行相應的配置。
國際化的解決策略是通過localeresolver的實現類來實現的。它是通過http的接收頭、cookie、session工作的。
預設的實現類是org.springframework.web.servlet.i18n.
acceptheaderlocaleresolver。
它在應用上下文中的bean的名字為
localeresolver。
主題解決策略是通過themeresolver的實現類來實現的。包括乙個固定的主題和cookie和會話儲存的實現。
預設的實現類是:org.springframework.web.servlet.theme.
fixedthemeresolver
它在應用上下文中的bean的名字為
themeresolver。
另外:我們可以在應用中定義不止乙個dispatcherservlet來適配不同的請求型別。
SpringMVC 筆記 6 請求處理的大致流程
1 所有請求過來,dispatcherservlet收到請求 2 呼叫dodispatch 方法進行處理protected 4 gethandleradapter 拿到能夠執行這個類的所有方法的介面卡 反射工具annotationmethodhandleradapter能解析註解方法的介面卡 han...
SpringMVC處理請求的大致流程是怎麼樣的
spring mvc請求處理架構圖 1 使用者首先傳送請求到前端控制器dispatcher servlet 3 接著將得到的處理器handlerexecutionchain包裝成為handleradapter 介面卡 4 根據得到的handleradapter呼叫真正的處理器得到modelandvi...
spring mvc請求處理流程
從web.xml中 servlet的配置開始,根據servlet攔截的url parttern,來進行請求 spring mvc工作流程圖 圖一 圖二 spring工作流程描述 1.使用者向伺服器傳送請求,請求被spring 前端控制servelt dispatcherservlet捕獲 3.dis...