springmvc的詳細的執行流程分析

2021-10-24 10:10:17 字數 2513 閱讀 5045

當頁面請求一傳送,以前在servlet時是request接收請求,但是到了springmvc,就是前端控制器dispatcherservlet接收,為什麼呢?看看dispatcherservlet的繼承樹,如下

可以看到dispatcherservlet實際上是httpservlet的子類,那麼也就說的通啦

那請求收到dispatcherservlet是怎麼處理的呢?

在httpservletbean中沒有看到對請求方式的處理

在看看它的子類frameworkservlet的方法,發現有了對各種請求方式的處理

看看是怎麼處理的,發現都是一樣的呼叫了processrequest(request, response)方法

進入processrequest方法一**竟

發現最終是交給了dispatcherservlet的doservice(request, response)方法處理

以為到此結束了,發現然並卵,哈哈

最終跑到了dodispatch方法裡面

//根據處理器得到匹配的處理器介面卡

handleradapter ha =

this

.gethandleradapter

gethandler()

);string method = request.

getmethod()

;boolean isget =

"get"

.equals

(method);if

(isget ||

"head"

.equals

(method))}

if((processedrequest, response)

)//介面卡處理請求

mv = ha.

handle

gethandler()

);if(asyncmanager.

isconcurrenthandlingstarted()

)//應用預設的檢視名

this

.(processedrequest, mv)

;//後置處理器進行處理

(processedrequest, response, mv);}

catch

(exception var20)

catch

(throwable var21)

//處理結果,進行檢視渲染

this

.processdispatchresult

(exception)dispatchexception);}

catch

(exception var22)

catch

(throwable var23)

}finally

}else

if(multipartrequestparsed)

}}乙個請求發過來,需要處理器對映器去找到對應的處理器,也可以說是控制器;又因為乙個型別的控制器對應乙個型別的介面卡,而控制器找到與之匹配的介面卡需要處理器介面卡去對映,找到了介面卡之後,就去執行業務邏輯。

處理器對映器有3個,如下

而處理器介面卡有4個,如下

下面是總體的流程圖

Spring MVC的執行流程

流程概要 1.web頁面請求 2.dispatchservlet 3.處理器對映 4.控制器 模型 邏輯檢視名 5.視 析器 6.檢視 7.響應 解釋 dispatchservlet將請求委託給應用程式的其他元件來執行實際的處理。dispatchservlet需要將請求傳送給哪個控制器,所以它需要查...

springMVC的執行流程

1 發起請求到前端控制器 dispatcherservlet 4 前端控制器呼叫處理器介面卡去執行handler 5 處理器介面卡去執行handler 6 handler執行完成給介面卡返回modelandview 7 處理器介面卡向前端控制器返回modelandview 是springmvc框架的...

SpringMVC的執行流程

springmvc中的四大元件 1 前端控制器 dispatcherservlet 無需程式設計師開發 主要是負責request和response物件的 和響應。主要根據url來匹配出能處理相關請求的類 controller 並交給前端控制器。3 處理器介面卡 handleradapter 需要程式...