1三、ASP.NET MVC入門到精通——MVC請求管道

本系列目錄:ASP.NET MVC4入門到精通系列目錄彙總html

ASP.NET MVC的請求管道和ASP.NET請求管道基本上如出一轍,若是你對ASP.NET請求管道十分熟悉的話,你只要關注一下不一樣點。看懂下面兩張圖,你就基本上明瞭了,這兩張圖是從鄒華棟博客上面取的。(說明:我不是給傳智帶鹽的,這圖確實畫得通俗易懂)不明白的地方,用reflector工具查看MVC的源碼,沒其它的。.NET框架的源碼裏面幾乎涉獵了各類設計模式。這一節的內容,我也不知道怎麼說,都在圖裏面了,看圖比直接用文字說明要明瞭得多,只是這些東西仍是比較抽象的,若是你時間充裕,建議看下MVC的源碼。怎麼看?就找MVC框架引用到的那幾個dll,用反編譯工具看下就能夠了,若是要深刻,直接去官網下載源碼看,反覆看幾遍,你就豁然開朗了,不過須要必定的C#基礎。設計模式

MVC19個管道事件:瀏覽器

/*
1.BeginRequest  開始處理請求
2.AuthenticateRequest 受權驗證請求,獲取用戶受權信息
3.PostAuthenticateRequest 獲取成功
4.AunthorizeRequest 受權,通常來檢查用戶是否得到權限
5.PostAuthorizeRequest 得到受權
6.ResolveRequestCache 獲取頁面緩存結果(若是沒有則執行)
7.PostResolveRequestCache 已獲取緩存
8.PostMapRequestHandler 建立頁面對象
9.AcquireRequestState 獲取Session -- 先判斷當前頁面對象是否實現了IRequiresSessionState接口,若是實現了,則從瀏覽器發來的請求報文頭中得到SessionId,併到服務器的 Session池中得到對應的Session對象,最後賦值給 HttpContext的Session屬性。
10.PostAcquireRequestState 得到Session
11.PreRequestHandlerExecute 準備執行頁面對象
×執行頁面對象的ProcessRequest方法(1.ashx,1.aspx),若是請求的是1.aspx,則會運行頁面生命週期
12.PostRequestHandlerExecute 執行完頁面對象了
13.ReleaseRequestState 釋放請求狀態
14.PostReleaseRequestState 已釋放請求狀態
15.UpdateReuqestCache 更新緩存
16.PostUpdateRequestCache 已更新緩存
17.LogRequest 日誌記錄
18.PostLogRequest 已完成日誌
19.EndRequest 完成
*/

這節純理論的東西,只能本身慢慢悟。緩存

相關文章
相關標籤/搜索