當頁面請求一傳送,以前在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 需要程式...