小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

ASP.NET應(yīng)用程序生命周期趣談(一)

 細(xì)想生活 2015-09-17

這幾天一直在看ASP.NET應(yīng)用程序生命周期,真是太難了,我理解起來費(fèi)了勁了,但偏偏它又是那么重要,所以我希望能給大家?guī)硪黄菀桌斫庥趾糜玫奈恼聛韼椭鷮W(xué)習(xí)ASP.NET應(yīng)用程序生命周期。這篇就是了。

 

當(dāng)你訪問博客園想看我的這篇文章的時(shí)候,這個(gè)請(qǐng)求就被博客園的WEB SERVER(IIS)接收到了。博客園IIS看了一眼我的請(qǐng)求,“噢,是.aspx啊,給ASP.NET去處理吧,就把我這個(gè)請(qǐng)求給了ASP.NET,并且說:“這個(gè)你來處理,你處理完了之后把HTML給我,我好給邱爽一個(gè)回復(fù)”。

 

ASP.NET收到IIS傳遞過來的請(qǐng)求后也沒時(shí)間抱怨啊 就開始干活兒了。怎么干的呢?

第一,它先創(chuàng)建了一個(gè)Context對(duì)象,它就像個(gè)箱子,箱子當(dāng)然是來裝東西的啦,裝什么呢?

第二,ASP.NET創(chuàng)建了一個(gè)Request對(duì)象,包含了IIS傳遞給它的所有信息(IIS傳遞過來的實(shí)際就是個(gè)Request嘛)。

第三,ASP.NET接著又創(chuàng)建了一個(gè)Response對(duì)象,用來裝HTML的,也放進(jìn)箱子(Context)

第四,然后,ASP.NET說,太累了,這活兒沒個(gè)干,還是雇個(gè)人吧。就雇了個(gè)項(xiàng)目經(jīng)理(HttpApplication對(duì)象),然后就把箱子(Context)交給項(xiàng)目經(jīng)理并且對(duì)它說,這里有我們收到的Request,你需要做的就是把里面的Reponse填一下,具體怎么干你掂量著吧,就走了。

 

這個(gè)項(xiàng)目經(jīng)理(HttpApplication對(duì)象)就想啊,憑啥活兒我干錢你們拿?。坎恍?,我得找倆苦力去,于是就有了:程序員HttpModule和程序員HttpHandler,姑且就稱他們?yōu)镻_Module和P_Handler吧,項(xiàng)目經(jīng)理先找到了P_Module.

P_Module(HttpModule)非常的能干,它能夠去查看ASP.NET交給項(xiàng)目經(jīng)理(HttpApplication對(duì)象)的箱子(Context),并且根據(jù)里面的東西做一些決定,比如安全?。‵ormsAuthenticationModule),狀態(tài)?。⊿essionStateModule )等等吧。 在P_Module工作完成之后(也許已經(jīng)改變了箱子里(Context)的內(nèi)容),項(xiàng)目經(jīng)理開始找P_Handler來做填充Response的工作?,F(xiàn)在招人難啊,找了好久也沒招到,好吧,找獵頭(HttpHandler Factory)吧。獵頭公司一看,“噢,要.aspx Handler啊",于是找來了一個(gè)天生就善于并且愿意處理頁(yè)面的P_Handler(.aspx頁(yè)面最終會(huì)編譯成一個(gè)有繼承機(jī)構(gòu)的IHttpHander),然后交給項(xiàng)目經(jīng)理(HttpApplication)。項(xiàng)目經(jīng)理看了一眼P_Handler之后,覺得還行,就把P_Module處理過的箱子交給它并且說:"處理一下這個(gè)箱子里的東西,然后交給我"。

P_Handler是個(gè)天生的處理頁(yè)面的牛人,它根據(jù)Request對(duì)象里的東西是用了一招"乾坤大挪移",不知道怎么挪的,就挪出了HTML并塞進(jìn)了Response對(duì)象中。P_Handler自信的笑了一聲,把箱子交還給了項(xiàng)目經(jīng)理(HttpApplication對(duì)象)。項(xiàng)目經(jīng)理從箱子里面把Response對(duì)象拿出來直接給了IIS,IIS又給了你了,你就看到這篇文章了。

 

故事就是故事,故事就是故去的事,就是往事。那往事肯定就有遺漏的地方。那我們這個(gè)故事遺漏了哪些地方呢?

第一,IIS和ASP.NET之間的交互不是像我說的那么簡(jiǎn)單而直接的,中間還發(fā)生了很多事情。

第二,HttpModule,也就是我們的程序員P_Module, 它其實(shí)還能干很多事情,我們并沒有去發(fā)掘。

第三,HttpHandler,也就是我們的程序員P_Handler,它的"乾坤大挪移"就是ProcessRequest方法,這里并沒有詳述到。

第四,。。。等我再想想再跟您聊。

 

希望這邊小文能夠幫助你更容易的理解ASP.NET生命周期,我會(huì)繼續(xù)努力,爭(zhēng)取以最簡(jiǎn)單明了的方式來speak out ASP.NET原理和運(yùn)行機(jī)制。歡迎拍磚,謝謝。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多