1. 程式人生 > >.net Mvc框架原理

.net Mvc框架原理

time system ati 封裝 重要 request對象 arp image .net

本文只是簡要說明原理,學習後的總結。

1.當一個Http請求發送後會被URLRoutingModule攔截(這時候也就是正式進入管道,下章會講管道事件)

2.這時根據IsapiWorkerRequest對象,HttpRuntime會創建相當於Http請求的上下文(Context):HttpContext

3.封裝HttpContext,變成HttpContextWarpper對象,再從Route集合中找到符合當前請求URL的RouteData對象,把HttpContext和RouteData對象封裝成RequestContext對象

4.再根據RouteData對象中RouteHandler獲取IHttpHandler,MvcHandler是 IHttpHandler的一個實現類。

5.執行IHttpHandler,通過反射執行具體的Controller,執行具體的Action

UrlRoutingMudule和MVCHandler

UrlRoutingMudule繼承自接口IHttpMudule、MVCHandler繼承自接口IHttpHandler,HttpMudule和HttpHandler都是HttpApplication中的對象,HttpMudule是在HttpApplication初始化中,根據配置文件加載並初始化的對象,主要負責通過註冊HttpApplication的相應的事件,將所需的操作註入整個HTTP請求的處理流程。ASP.NET的很多功能,比如身份驗證、授權、緩存等,都是通過相應的HttpModule實現的。而最終完成對HTTP請求的處理實現在另一個重要的對象中:HttpHandler。對於不同的資源類型,具有不同的HttpHandler。比如.aspx頁對應的HttpHandler為System.Web.UI.Page,WCF的.svc文件對應的HttpHandler為System.ServiceModel.Activation.HttpHandler。

本文主要學習自MVC系列——MVC源碼學習:打造自己的MVC框架(講解的非常棒)

技術分享

.net Mvc框架原理