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


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

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 完成
*/

這節純理論的東西,只能自己慢慢悟。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM