spring mvc 請求響應流程
通過tomcat 和 spring對請求的處理過程的函式棧分析,可以看出spring-mvc工作原理。
1、請求經過tomcat處理後,進入spring mvc的前端控制器frameworkservlet。
2、前端控制器處理完成後,讓dispatcherservlet(繼承frameworkservlet,所以1和2的處理,也可以看成統一的處理器)對結果進行處理。在dispatcherservlet中dodispatch函式完成了spring mvc對請求的後續處理,包括:獲取控制處理鏈(handlerexecutionchain類的物件)、通過控制處理鏈查詢對應的處理器介面卡(handleradapter物件)、執行執行對應的controller和modelandview的後續處理。下面看看dodispatch的源**。
//獲取對應的真正的執行
// process last-modified header, if supported by the handler.
string method = request.getmethod();
boolean isget = "get".equals(method);
if (isget || "head".equals(method))
if (new servletwebrequest(request, response).checknotmodified(lastmodified) && isget)
}return;
}try
finally }}
catch (exception ex)
//modelandview的後續處理
}catch (exception ex)
catch (error err)
finally
// clean up any resources used by a multipart request.
if (multipartrequestparsed) }}
3、modelandview的後續處理的後續處理包括:(1)、將model資料放到request。(2)、將model的值放入view中。仔細函式棧的圖可以看出,spring只是將值放入request中去,後續的view中el表示式的賦值等操作,還是外部環境完成的。
Spring MVC 請求響應流程
一旦選擇了合適的控制器後,dispatcherservlet將請求傳送到控制器 3,這時請求的任務就結束了,只需要等待控制處理使用者提交的資料並作出相應的返回。控制器所做的最後一件事就是將這些資料資訊打包,並標出用於渲染輸出的檢視名,接下來會將請求連同模型和檢視名送回dispatcherservle...
SpringMVC 的請求響應流程以及涉及的元件
總結下別人寫的幾篇部落格 spring官方提供圖形 使用者請求到達前端控制器,它就相當於 mvc 模式中的 c,dispatcherservlet 是整個流程控制的中心,由它呼叫其它元件處理使用者的請求,dispatcherservlet 的存在降低了元件之間的耦合性。它就是我們開發中要編寫的具體業...
Spring MVC 請求響應流程及建立步驟
最近在對spring mvc框架的專案進行源 業務邏輯漏洞分析,把之前學的spring mvc 自己對spring mvc的簡單理解整理一下。有不對的地方還請各位看官大神多指教。一 簡介 spring mvc框架是乙個mvc框架,通過實現mvc很好的將資料 業務 展現進行分離 spring mvc ...