城市公交查詢系統(tǒng)畢業(yè)設(shè)計(jì) 外文翻譯_第1頁(yè)
城市公交查詢系統(tǒng)畢業(yè)設(shè)計(jì) 外文翻譯_第2頁(yè)
城市公交查詢系統(tǒng)畢業(yè)設(shè)計(jì) 外文翻譯_第3頁(yè)
城市公交查詢系統(tǒng)畢業(yè)設(shè)計(jì) 外文翻譯_第4頁(yè)
城市公交查詢系統(tǒng)畢業(yè)設(shè)計(jì) 外文翻譯_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

外文翻譯城市公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)城市公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)城市公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)城市公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)學(xué)生姓名指導(dǎo)教師副教授合作指導(dǎo)教師專業(yè)名稱計(jì)算機(jī)科學(xué)與技術(shù)所在學(xué)院水產(chǎn)學(xué)院2009年6月1原文摘自LVARJACOBSONOBJECTORIENTEDSOFTWAREENGINEERING第1版北京人民郵電出版社,200510外文資料原文ASPNETPAGEOBJECTMODELSUMMARYLEARNABOUTTHEEVENTINGMODELBUILTAROUNDASPNETWEBPAGESANDTHEVARIOUSSTAGESTHATAWEBPAGEEXPERIENCESONITSWAYTOHTMLTHEASPNETHTTPRUNTIMEGOVERNSTHEPIPELINEOFOBJECTSTHATTRANSFORMTHEREQUESTEDURLINTOALIVINGINSTANCEOFAPAGECLASSFIRST,ANDINTOPLAINHTMLTEXTNEXTDISCOVERTHEEVENTSTHATCHARACTERIZETHELIFECYCLEOFAPAGEANDHOWCONTROLANDPAGEAUTHORSCANINTERVENETOALTERTHESTANDARDBEHAVIOR6PRINTEDPAGESINTRODUCTIONEACHREQUESTFORAMICROSOFTASPNETPAGETHATHITSMICROSOFTINTERNETINFORMATIONSERVICESIISISHANDEDOVERTOTHEASPNETHTTPPIPELINETHEHTTPPIPELINEISACHAINOFMANAGEDOBJECTSTHATSEQUENTIALLYPROCESSTHEREQUESTANDMAKETHETRANSITIONFROMAURLTOPLAINHTMLTEXTHAPPENTHEENTRYPOINTOFTHEHTTPPIPELINEISTHEHTTPRUNTIMECLASSTHEASPNETINFRASTRUCTURECREATESONEINSTANCEOFTHISCLASSPEREACHAPPDOMAINHOSTEDWITHINTHEWORKERPROCESSREMEMBERTHATTHEWORKERPROCESSMAINTAINSONEDISTINCTAPPDOMAINPEREACHASPNETAPPLICATIONCURRENTLYRUNNINGTHEHTTPRUNTIMECLASSPICKSUPANHTTPAPPLICATIONOBJECTFROMANINTERNALPOOLANDSETSITTOWORKONTHEREQUESTTHEMAINTASKACCOMPLISHEDBYTHEHTTPAPPLICATIONMANAGERISFINDINGOUTTHECLASSTHATWILLACTUALLYHANDLETHEREQUESTWHENTHEREQUESTISFORANASPXRESOURCE,THEHANDLERISAPAGEHANDLERNAMELY,ANINSTANCEOFACLASSTHATINHERITSFROMPAGETHEASSOCIATIONBETWEENTYPESOFRESOURCESANDTYPESOFHANDLERSISSTOREDINTHECONFIGURATIONFILEOFTHEAPPLICATIONMOREEXACTLY,THEDEFAULTSETOFMAPPINGSISDEFINEDINTHESECTIONOFTHEMACHINECONFIGFILEHOWEVER,THEAPPLICATIONCANCUSTOMIZETHELISTOFITSOWNHTTPHANDLERSINTHELOCALWEBCONFIGFILETHELINEBELOWILLUSTRATESTHECODETHATDEFINESTHEHTTPHANDLERFORASPXRESOURCESANEXTENSIONCANBEASSOCIATEDWITHAHANDLERCLASS,ORMOREINGENERAL,WITHAHANDLERFACTORYCLASSINALLCASES,THEHTTPAPPLICATIONOBJECTINCHARGEFORTHEREQUESTGETSANOBJECTTHATIMPLEMENTSTHEIHTTPHANDLERINTERFACEIFTHEASSOCIATIONRESOURCE/CLASSISRESOLVEDINTERMSOFAHTTPHANDLER,THENTHERETURNEDCLASSWILLIMPLEMENTTHEINTERFACEDIRECTLYIFTHERESOURCEISBOUNDTOAHANDLERFACTORY,ANEXTRASTEPISNECESSARYAHANDLERFACTORYCLASSIMPLEMENTSTHEIHTTPHANDLERFACTORYINTERFACEWHOSEGETHANDLERMETHODWILLRETURNANIHTTPHANDLERBASEDOBJECTHOWCANTHEHTTPRUNTIMECLOSETHECIRCLEANDPROCESSTHEPAGEREQUESTTHEIHTTPHANDLERINTERFACEFEATURESTHEPROCESSREQUESTMETHODBYCALLINGTHISMETHODONTHEOBJECTTHATREPRESENTSTHEREQUESTEDPAGE,THEASPNETINFRASTRUCTURESTARTSTHEPROCESSTHATWILLGENERATETHEOUTPUTFORTHEBROWSERTHEREALPAGECLASS2THETYPEOFTHEHTTPHANDLERFORAPARTICULARPAGEDEPENDSONTHEURLTHEFIRSTTIMETHEURLISINVOKED,ANEWCLASSISCOMPOSEDANDDYNAMICALLYCOMPILEDTOANASSEMBLYTHESOURCECODEOFTHECLASSISTHEOUTCOMEOFAPARSINGPROCESSTHATEXAMINESTHEASPXSOURCESTHECLASSISDEFINEDASPARTOFTHENAMESPACEASPANDISGIVENANAMETHATMIMICSTHEORIGINALURLFOREXAMPLE,IFTHEURLENDPOINTISPAGEASPX,THENAMEOFTHECLASSISASPPAGE_ASPXTHECLASSNAME,THOUGH,CANBEPROGRAMMATICALLYCONTROLLEDBYSETTINGTHECLASSNAMEATTRIBUTEINTHEPAGEDIRECTIVETHEBASECLASSFORTHEHTTPHANDLERISPAGETHISCLASSDEFINESTHEMINIMUMSETOFMETHODSANDPROPERTIESSHAREDBYALLPAGEHANDLERSTHEPAGECLASSIMPLEMENTSTHEIHTTPHANDLERINTERFACEUNDERACOUPLEOFCIRCUMSTANCES,THEBASECLASSFORTHEACTUALHANDLERISNOTPAGEBUTADIFFERENTCLASSTHISHAPPENS,FOREXAMPLE,IFCODEBEHINDISUSEDCODEBEHINDISADEVELOPMENTTECHNIQUETHATINSULATESTHECODENECESSARYTOAPAGEINTOASEPARATECORMICROSOFTVISUALBASICNETCLASSTHECODEOFAPAGEISTHESETOFEVENTHANDLERSANDHELPERMETHODSTHATACTUALLYCREATETHEBEHAVIOROFTHEPAGETHISCODECANBEDEFINEDINLINEUSINGTHETAGORPLACEDINANEXTERNALCLASSTHECODEBEHINDCLASSACODEBEHINDCLASSISACLASSTHATINHERITSFROMPAGEANDSPECIALIZESITWITHEXTRAMETHODSWHENSPECIFIED,THECODEBEHINDCLASSISUSEDASTHEBASECLASSFORTHEHTTPHANDLERTHEOTHERSITUATIONINWHICHTHEHTTPHANDLERISNOTBASEDONPAGEISWHENTHECONFIGURATIONFILEOFTHEAPPLICATIONCONTAINSAREDEFINITIONFORTHEPAGEBASETYPEATTRIBUTEINTHESECTIONTHEPAGEBASETYPEATTRIBUTEINDICATESTHETYPEANDTHEASSEMBLYTHATCONTAINSTHEBASECLASSFORPAGEHANDLERSDERIVEDFROMPAGE,THISCLASSCANAUTOMATICALLYENDOWHANDLERSWITHACUSTOMANDEXTENDEDSETOFMETHODSANDPROPERTIESTHEPAGELIFECYCLEONCETHEHTTPPAGEHANDLERCLASSISFULLYIDENTIFIED,THEASPNETRUNTIMECALLSTHEHANDLERSPROCESSREQUESTMETHODTOPROCESSTHEREQUESTNORMALLY,THEREISNONEEDTOCHANGETHEIMPLEMENTATIONOFTHEMETHODASITISPROVIDEDBYTHEPAGECLASSTHISIMPLEMENTATIONBEGINSBYCALLINGTHEMETHODFRAMEWORKINITIALIZE,WHICHBUILDSTHECONTROLSTREEFORTHEPAGETHEMETHODISAPROTECTEDANDVIRTUALMEMBEROFTHETEMPLATECONTROLCLASSTHECLASSFROMWHICHPAGEITSELFDERIVESANYDYNAMICALLYGENERATEDHANDLERFORANASPXRESOURCEOVERRIDESFRAMEWORKINITIALIZEINTHISMETHOD,THEWHOLECONTROLTREEFORTHEPAGEISBUILTNEXT,PROCESSREQUESTMAKESTHEPAGETRANSITVARIOUSPHASESINITIALIZATION,LOADINGOFVIEWSTATEINFORMATIONANDPOSTBACKDATA,LOADINGOFTHEPAGESUSERCODEANDEXECUTIONOFPOSTBACKSERVERSIDEEVENTSAFTERTHAT,THEPAGEENTERSINRENDERINGMODETHEUPDATEDVIEWSTATEISCOLLECTEDTHEHTMLCODEISGENERATEDANDTHENSENTTOTHEOUTPUTCONSOLEFINALLY,THEPAGEISUNLOADEDANDTHEREQUESTISCONSIDEREDCOMPLETELYSERVEDDURINGTHEVARIOUSPHASES,THEPAGEFIRESAFEWEVENTSTHATWEBCONTROLSANDUSERDEFINEDCODECANINTERCEPTANDHANDLESOMEOFTHESEEVENTSARESPECIFICFOREMBEDDEDCONTROLSANDSUBSEQUENTLYCANTBEHANDLEDATTHELEVELOFTHEASPXCODE3APAGETHATWANTSTOHANDLEACERTAINEVENTSHOULDEXPLICITLYREGISTERANAPPROPRIATEHANDLERHOWEVER,FORBACKWARDCOMPATIBILITYWITHTHEEARLIERVISUALBASICPROGRAMMINGSTYLE,ASPNETALSOSUPPORTSAFORMOFIMPLICITEVENTHOOKINGBYDEFAULT,THEPAGETRIESTOMATCHSPECIALMETHODNAMESWITHEVENTSIFAMATCHISFOUND,THEMETHODISCONSIDEREDAHANDLERFORTHEEVENTASPNETPROVIDESSPECIALRECOGNITIONOFSIXMETHODNAMESTHEYAREPAGE_INIT,PAGE_LOAD,PAGE_DATABIND,PAGE_PRERENDER,ANDPAGE_UNLOADTHESEMETHODSARETREATEDASHANDLERSFORTHECORRESPONDINGEVENTSEXPOSEDBYTHEPAGECLASSTHEHTTPRUNTIMEWILLAUTOMATICALLYBINDTHESEMETHODSTOPAGEEVENTSSAVINGDEVELOPERSFROMHAVINGTOWRITETHENECESSARYGLUECODEFOREXAMPLE,THEMETHODNAMEDPAGE_LOADISWIREDTOTHEPAGESLOADEVENTASIFTHEFOLLOWINGCODEWASWRITTENTHISLOADNEWEVENTHANDLERTHISPAGE_LOADTHEAUTOMATICRECOGNITIONOFSPECIALNAMESISABEHAVIORUNDERTHECONTROLOFTHEAUTOEVENTWIREUPATTRIBUTEOFTHEPAGEDIRECTIVEIFTHEATTRIBUTEISSETTOFALSE,ANYAPPLICATIONSTHATWISHTOHANDLEANEVENTNEEDTOCONNECTEXPLICITLYTOTHEPAGEEVENTPAGESTHATDONTUSEAUTOMATICEVENTWIREUPWILLGETASLIGHTPERFORMANCEBOOSTBYNOTHAVING51ASPXTODOTHEEXTRAWORKOFMATCHINGNAMESANDEVENTSYOUSHOULDNOTETHATALLMICROSOFTVISUALSTUDIONETPROJECTSARECREATEDWITHTHEAUTOEVENTWIREUPATTRIBUTEDISABLEDHOWEVER,THEDEFAULTSETTINGFORTHEATTRIBUTEISTRUE,MEANINGTHATMETHODSSUCHASPAGE_LOADARERECOGNIZEDANDBOUNDTOTHEASSOCIATEDEVENTTHEEXECUTIONOFAPAGECONSISTSOFASEQUENCEOFSTAGESLISTEDINTHEFOLLOWINGTABLEANDISCHARACTERIZEDBYAPPLICATIONLEVELEVENTSAND/ORPROTECTED,OVERRIDABLEMETHODSTABLE1KEYEVENTSINTHELIFEOFANASPNETPAGESTAGEPAGEEVENTOVERRIDABLEMETHODPAGEINITIALIZATIONINITVIEWSTATELOADINGLOADVIEWSTATEPOSTBACKDATAPROCESSINGLOADPOSTDATAMETHODINANYCONTROLTHATIMPLEMENTSTHEIPOSTBACKDATAHANDLERINTERFACEPAGELOADINGLOADPOSTBACKCHANGENOTIFICATIONRAISE51POSASPXTDATACHANGEDEVENTMETHODINANYCONTROLTHATIMPLEMENTSTHEIPOSTBACKDATAHANDLERINTERFACEPOSTBACKEVENTHANDLINGANYPOSTBACKEVENTDEFINEDBYCONTROLSRAISEPOSTBACKEVENTMETHODINANYCONTROLTHATIMPLEMENTSTHEIPOSTBACKEVENTHANDLERINTERFACEPAGEPRERENDERINGPHASEPRERENDERVIEWSTATESAVINGSAVEVIEWSTATE4PAGERENDERINGRENDERPAGEUNLOADINGUNLOADSOMEOFTHESTAGESLISTEDABOVEARENOTVISIBLEATTHEPAGELEVELANDAFFECTONLYAUTHORSOFSERVERCONTROLSANDDEVELOPERSWHOHAPPENTOCREATEACLASSDERIVEDFROMPAGEINIT,LOAD,PRERENDER,UNLOAD,PLUSALLPOSTBACKEVENTSDEFINEDBYEMBEDDEDCONTROLSARETHEONLYSIGNALSOFLIFETHATAPAGESENDSTOTHEEXTERNALWORLDSTAGESOFEXECUTIONTHEFIRSTSTAGEINTHEPAGELIFECYCLEISTHEINITIALIZATIONTHISSTAGEISCHARACTERIZEDBYTHEINITEVENT,WHICHFIRESTOTHEAPPLICATIONAFTERTHEPAGESCONTROLTREEHASBEENSUCCESSFULLYCREATEDINOTHERWORDS,WHENTHEINITEVENTARRIVES,ALLTHECONTROLSSTATICALLYDECLAREDINTHEASPXSOURCEFILEHAVEBEENINSTANTIATEDANDHOLDTHEIRDEFAULTVALUESCONTROLSCANHOOKUPTHEINITEVENTTOINITIALIZEANYSETTINGSTHATWILLBENEEDEDDURINGTHELIFETIMEOFTHEINCOMINGWEBREQUESTFOREXAMPLE,ATTHISTIMECONTROLSCANLOADEXTERNALTEMPLATEFILESORSETUPTHEHANDLERFORTHEEVENTSYOUSHOULDNOTICETHATNOVIEWSTATEINFORMATIONISAVAILABLEFORUSEYETIMMEDIATELYAFTERINITIALIZATION,THEPAGEFRAMEWORKLOADSTHEVIEWSTATEFORTHEPAGETHEVIEWSTATEISACOLLECTIONOFNAME/VALUEPAIRS,WHERECONTROLSANDTHEPAGEITSELFSTOREANYINFORMATIONTHATMUSTBEPERSISTENTACROSSWEBREQUESTSTHEVIEWSTATEREPRESENTSTHECALLCONTEXTOFTHEPAGETYPICALLY,ITCONTAINSTHESTATEOFTHECONTROLSTHELASTTIMETHEPAGEWASPROCESSEDONTHESERVERTHEVIEWSTATEISEMPTYTHEFIRSTTIMETHEPAGEISREQUESTEDINTHESESSIONBYDEFAULT,THEVIEWSTATEISSTOREDINAHIDDENFIELDSILENTLYADDEDTOTHEPAGETHENAMEOFTHISFIELDIS_VIEWSTATEBYOVERRIDINGTHELOADVIEWSTATEMETHODAPROTECTEDOVERRIDABLEMETHODONTHECONTROLCLASSCOMPONENTDEVELOPERSCANCONTROLHOWTHEVIEWSTATEISRESTOREDANDHOWITSCONTENTSAREMAPPEDTOTHEINTERNALSTATEMETHODSLIKELOADPAGESTATEFROMPERSISTENCEMEDIUMANDITSCOUNTERPARTSAVEPAGESTATETOPERSISTENCEMEDIUMCANBEUSEDTOLOADANDSAVETHEVIEWSTATETOANALTERNATIVESTORAGEMEDIUMFOREXAMPLE,SESSION,DATABASES,ORASERVERSIDEFILEUNLIKELOADVIEWSTATE,THEAFOREMENTIONEDMETHODSAREAVAILABLEONLYINCLASSESDERIVEDFROMPAGEONCETHEVIEWSTATEHASBEENRESTORED,THECONTROLSINTHEPAGETREEAREINTHESAMESTATETHEYWERETHELASTTIMETHEPAGEWASRENDEREDTOTHEBROWSERTHENEXTSTEPCONSISTSOFUPDATINGTHEIRSTATETOINCORPORATECLIENTSIDECHANGESTHEPOSTBACKDATAPROCESSINGSTAGEGIVESCONTROLSACHANCETOUPDATETHEIRSTATESOTHATITACCURATELYREFLECTSTHESTATEOFTHECORRESPONDINGHTMLELEMENTONTHECLIENTFOREXAMPLE,ASERVERTEXTBOXCONTROLHASITSHTMLCOUNTERPARTINANELEMENTINTHEPOSTBACKDATASTAGE,THETEXTBOXCONTROLWILLRETRIEVETHECURRENTVALUEOFTAGANDUSEITTOREFRESHITSINTERNALSTATEEACHCONTROLISRESPONSIBLEFOREXTRACTINGVALUESFROMPOSTEDDATAANDUPDATINGSOMEOFITSPROPERTIESTHETEXTBOXCONTROLWILLUPDATEITSTEXTPROPERTYWHEREASTHECHECKBOXCONTROLWILLREFRESHITSCHECKEDPROPERTYTHEMATCHBETWEENASERVERCONTROLANDAHTMLELEMENTISFOUNDONTHEIDOFBOTHATTHEENDOFTHEPOSTBACKDATAPROCESSINGSTAGE,ALLCONTROLSINTHEPAGEREFLECTTHEPREVIOUSSTATE5UPDATEDWITHCHANGESENTEREDONTHECLIENTATTHISPOINT,THELOADEVENTISFIREDTOTHEPAGETHEREMIGHTBECONTROLSINTHEPAGETHATNEEDTOACCOMPLISHCERTAINTASKSIFASENSITIVEPROPERTYISMODIFIEDACROSSTWODIFFERENTREQUESTSFOREXAMPLE,IFTHETEXTOFATEXTBOXCONTROLISMODIFIEDONTHECLIENT,THECONTROLFIRESTHETEXTCHANGEDEVENTEACHCONTROLCANTAKETHEDECISIONTOFIREANAPPROPRIATEEVENTIFONEORMOREOFITSPROPERTIESAREMODIFIEDWITHTHEVALUESCOMINGFROMTHECLIENTCONTROLSFORWHICHTHESECHANGESARECRITICALIMPLEMENTTHEIPOSTBACKDATAHANDLERINTERFACE,WHOSELOADPOSTDATAMETHODISINVOKEDIMMEDIATELYAFTERTHELOADEVENTBYCODINGTHELOADPOSTDATAMETHOD,ACONTROLVERIFIESIFANYCRITICALCHANGEHASOCCURREDSINCELASTREQUESTANDFIRESITSOWNCHANGEEVENTTHEKEYEVENTINTHELIFECYCLEOFAPAGEISWHENITISCALLEDTOEXECUTETHESERVERSIDECODEASSOCIATEDWITHANEVENTTRIGGEREDONTHECLIENTWHENTHEUSERCLICKSABUTTON,THEPAGEPOSTSBACKTHECOLLECTIONOFPOSTEDVALUESCONTAINSTHEIDOFTHEBUTTONTHATSTARTEDTHEWHOLEOPERATIONIFTHECONTROLISKNOWNTOIMPLEMENTTHEIPOSTBACKEVENTHANDLERINTERFACEBUTTONSANDLINKBUTTONSWILLDO,THEPAGEFRAMEWORKCALLSTHERAISEPOSTBACKEVENTMETHODWHATTHISMETHODDOESDEPENDSONTHETYPEOFTHECONTROLWITHREGARDTOBUTTONSANDLINKBUTTONS,THEMETHODLOOKSUPFORACLICKEVENTHANDLERANDRUNSTHEASSOCIATEDDELEGATEAFTERHANDLINGTHEPOSTBACKEVENT,THEPAGEPREPARESFORRENDERINGTHISSTAGEISSIGNALEDBYTHEPRETENDEREVENTTHISISAGOODTIMEFORCONTROLSTOPERFORMANYLASTMINUTEUPDATEOPERATIONSTHATNEEDTOTAKEPLACEIMMEDIATELYBEFORETHEVIEWSTATEISSAVEDANDTHEOUTPUTRENDEREDTHENEXTSTATEISSAVEVIEWSTATE,INWHICHALLCONTROLSANDTHEPAGEITSELFAREINVITEDTOFLUSHTHECONTENTSOFTHEIROWNVIEWSTATECOLLECTIONTHERESULTANTVIEWSTATEISTHENSERIALIZED,HASHED,BASE64ENCODED,ANDASSOCIATEDWITHTHE_VIEWSTATEHIDDENFIELDTHERENDERINGMECHANISMOFINDIVIDUALCONTROLSCANBEALTEREDBYOVERRIDINGTHERENDERMETHODTHEMETHODTAKESANHTMLWRITEROBJECTANDUSESITTOACCUMULATEALLHTMLTEXTTOBEGENERATEDFORTHECONTROLTHEDEFAULTIMPLEMENTATIONOFTHERENDERMETHODFORTHEPAGECLASSCONSISTSOFARECURSIVECALLTOALLCONSTITUENTCONTROLSFOREACHCONTROLTHEPAGECALLSTHERENDERMETHODANDCACHESTHEHTMLOUTPUTTHEFINALSIGNOFLIFEOFAPAGEISTHEUNLOADEVENTTHATARRIVESJUSTBEFORETHEPAGEOBJECTISDISMISSEDINTHISEVENTYOUSHOULDRELEASEANYCRITICALRESOURCEYOUMIGHTHAVEFOREXAMPLE,FILES,GRAPHICALOBJECTS,DATABASECONNECTIONSFINALLY,AFTERTHISEVENTTHEBROWSERRECEIVESTHEHTTPRESPONSEPACKETANDDISPLAYSTHEPAGESUMMARYTHEASPNETPAGEOBJECTMODELISPARTICULARLYINNOVATIVEBECAUSEOFTHEEVENTINGMECHANISMAWEBPAGEISCOMPOSEDOFCONTROLSTHATBOTHPRODUCEARICHHTMLBASEDUSERINTERFACEANDINTERACTWITHTHEUSERTHROUGHEVENTSSETTINGUPANEVENTINGMODELINTHECONTEXTOFWEBAPPLICATIONSISCHALLENGINGITSAMAZINGTOSEETHATCLIENTSIDEGENERATEDEVENTSARERESOLVEDWITHSERVERSIDECODE,ANDTHEOUTPUTOFTHISISVISIBLEASTHESAMEHTMLPAGE,ONLYPROPERLYMODIFIEDTOMAKESENSEOFTHISMODELITISIMPORTANTTOUNDERSTANDTHEVARIOUSSTAGESINTHEPAGELIFECYCLEANDHOWTHEPAGEOBJECTISINSTANTIATEDANDUSEDBYTHEHTTPRUNTIME6譯成中文ASPNET頁(yè)面對(duì)象模型摘要了解圍繞ASPNETWEB頁(yè)構(gòu)建的事件模型,以及一個(gè)WEB頁(yè)面在其轉(zhuǎn)變?yōu)镠TML的歷程中的各個(gè)階段。ASPNETHTTP運(yùn)行時(shí)控制對(duì)象管線,對(duì)象管線首先將所請(qǐng)求的URL轉(zhuǎn)換為一個(gè)頁(yè)面類的活動(dòng)實(shí)例,然后將其轉(zhuǎn)換為普通HTML文本。本文將探討一個(gè)頁(yè)面的生存周期中的各個(gè)特征事件,并了解控件和頁(yè)面編寫者如何介入其中以改變其標(biāo)準(zhǔn)行為。簡(jiǎn)介MICROSOFTINTERNET信息服務(wù)IIS所收到的對(duì)某MICROSOFTASPNET頁(yè)面的每個(gè)請(qǐng)求都被移交給ASPNETHTTP管線。HTTP管線由一系列托管對(duì)象組成,這些對(duì)象按順序處理該請(qǐng)求,并完成從URL到普通HTML文本的轉(zhuǎn)換。HTTP管線的入口點(diǎn)是HTTPRUNTIME類。ASPNET基礎(chǔ)結(jié)構(gòu)為輔助進(jìn)程中所承載的每個(gè)APPDOMAIN創(chuàng)建此類的一個(gè)實(shí)例(請(qǐng)注意,該輔助進(jìn)程為當(dāng)前正在運(yùn)行的每個(gè)ASPNET應(yīng)用程序維護(hù)一個(gè)不同的APPDOMAIN)。HTTPRUNTIME類從內(nèi)部池中選取一個(gè)HTTPAPPLICATION對(duì)象,并讓其處理該請(qǐng)求。HTTP應(yīng)用程序管理器所完成的主要任務(wù)就是找出將實(shí)際處理該請(qǐng)求的類。如果請(qǐng)求ASPX資源,則處理程序就是一個(gè)頁(yè)面處理程序即某個(gè)繼承自PAGE的類的一個(gè)實(shí)例。資源類型和處理程序類型之間的關(guān)聯(lián)關(guān)系存儲(chǔ)于該應(yīng)用程序的配置文件中。更準(zhǔn)確地說(shuō),在MACHINECONFIG文件的部分中定義默認(rèn)的一組映射關(guān)系。然而,應(yīng)用程序也可以在本地的WEBCONFIG文件中自定義自己的HTTP處理程序列表。下面的程序行舉例說(shuō)明了定義用于ASPX資源的HTTP處理程序的代碼。擴(kuò)展名可關(guān)聯(lián)到一個(gè)處理程序類,或者更普遍地關(guān)聯(lián)到一個(gè)處理程序工廠HANDLERFACTORY類。在所有情況下,負(fù)責(zé)處理請(qǐng)求的HTTPAPPLICATION對(duì)象都會(huì)獲得一個(gè)實(shí)現(xiàn)IHTTPHANDLER接口的對(duì)象。如果根據(jù)HTTP處理程序來(lái)解析關(guān)聯(lián)資源/類,那么所返回的類將直接實(shí)現(xiàn)該接口。如果資源綁定到處理程序工廠,則需要另外一個(gè)步驟。處理程序工廠類實(shí)現(xiàn)IHTTPHANDLERFACTORY接口,而該接口的GETHANDLER方法返回一個(gè)基于IHTTPHANDLER的對(duì)象。HTTP運(yùn)行時(shí)如何能完成整個(gè)循環(huán)并處理頁(yè)面請(qǐng)求呢IHTTPHANDLER接口特別提供了PROCESSREQUEST方法。通過(guò)對(duì)代表所請(qǐng)求頁(yè)面的對(duì)象調(diào)用此方法,ASPNET基礎(chǔ)結(jié)構(gòu)啟動(dòng)相應(yīng)過(guò)程,從而針對(duì)瀏覽器生成輸出。真正的PAGE類特定頁(yè)面的HTTP處理程序類型取決于URL。當(dāng)首次調(diào)用URL時(shí),將構(gòu)建一個(gè)新類并將該類動(dòng)態(tài)地編譯成一個(gè)程序集。用于檢查ASPX來(lái)源的語(yǔ)法分析過(guò)程的輸出結(jié)果就是該類的源代碼。該類被定義為ASP命名空間的一部分,并被賦予一個(gè)與原始URL相似的名稱。例如,如果URL終結(jié)點(diǎn)是PAGEASPX,則類名稱為ASPPAGE_ASPX。但是,也可通過(guò)編程設(shè)置PAGE指令的CLASSNAME屬性來(lái)控制類的名稱。HTTP處理程序的基類是PAGE。此類定義了所有頁(yè)面處理程序所共享的方法和屬性的最小集合。PAGE類中實(shí)現(xiàn)IHTTPHANDLER接口。在某些情況下,實(shí)際處理程序的基類并非PAGE,而是一個(gè)不同的類。例如,如果使用了代碼隱藏,就會(huì)出現(xiàn)這種情況。代碼隱藏是一種開發(fā)方法,它將頁(yè)面所需的代碼封裝到一個(gè)單獨(dú)的C或MICROSOFTVISUALBASICNET類中。頁(yè)面的代碼就是一組事件處理程序和幫助器方法,用以7實(shí)際創(chuàng)建該頁(yè)面的行為??梢岳脴?biāo)記將這種代碼定義為內(nèi)聯(lián)代碼,或者也可將其放到一個(gè)外部類代碼隱藏類中。代碼隱藏類是一種繼承自PAGE的類,但這種類具有一些額外的方法因而比較特殊。如果指定,代碼隱藏類就用作HTTP處理程序的基類。還有一種情況,即當(dāng)應(yīng)用程序配置文件的部分中重新定義了PAGEBASETYPE屬性時(shí),HTTP處理程序也不是基于PAGE的。PAGEBASETYPE屬性指出了包含頁(yè)面處理程序的基類的類型以及程序集。派生自PAGE的這個(gè)類可自動(dòng)給處理程序賦予一組自定義和擴(kuò)展的方法和屬性。頁(yè)面生存周期一旦完全確定HTTP頁(yè)面處理程序類,ASPNET運(yùn)行時(shí)就調(diào)用該處理程序的PROCESSREQUEST方法以處理請(qǐng)求。通常情況下,無(wú)需更改此方法的實(shí)現(xiàn)方式,因?yàn)樗怯蒔AGE類提供的。此實(shí)現(xiàn)方法一開始就調(diào)用FRAMEWORKINITIALIZE方法,以此建立頁(yè)面的控件樹。此方法是TEMPLATECONTROL類(PAGE類本身就是從該類派生出來(lái)的)的一個(gè)受保護(hù)的虛擬成員。任何針對(duì)ASPX資源而動(dòng)態(tài)生成的處理程序都重寫FRAMEWORKINITIALIZE。在此方法中,該頁(yè)面的完整控件樹得以構(gòu)建。接下來(lái),PROCESSREQUEST使該頁(yè)面經(jīng)歷若干階段初始化,加載視圖狀態(tài)信息和回發(fā)數(shù)據(jù),加載頁(yè)面的用戶代碼并執(zhí)行回發(fā)服務(wù)器端事件。隨后,該頁(yè)面進(jìn)入呈現(xiàn)模式收集更新后的視圖狀態(tài);生成HTML代碼然后將其發(fā)送到輸出控制臺(tái)。最后,卸載頁(yè)面,并認(rèn)為已完成對(duì)該請(qǐng)求的處理。在各個(gè)階段中,頁(yè)面都會(huì)激發(fā)一些WEB控件和用戶定義的代碼所能截獲并處理的事件。其中的一些事件是嵌入式控件專用的,因而并不能在ASPX代碼級(jí)進(jìn)行處理。如果頁(yè)面想要處理某個(gè)事件,它應(yīng)該顯式地注冊(cè)相應(yīng)的處理程序。然而,為了向后兼容早期的VISUALBASIC編程風(fēng)格,ASPNET也支持一種隱式的事件掛起形式。在默認(rèn)情況下,頁(yè)面將嘗試把特定的方法名與事件匹配起來(lái);如果找到匹配的方法,就認(rèn)為該方法是該事件的處理程序。ASPNET提供了六個(gè)方法名的特定識(shí)別。它們是PAGE_INIT、PAGE_LOAD、PAGE_DATABIND、PAGE_PRERENDER和PAGE_UNLOAD。這些方法被當(dāng)作是PAGE類所提供的相應(yīng)事件的處理程序。HTTP運(yùn)行時(shí)將自動(dòng)把這些方法與頁(yè)面事件綁定起來(lái),這樣一來(lái),開發(fā)人員就不必編寫所需的粘接代碼。例如,名為PAGE_LOAD的方法與頁(yè)面的LOAD事件綁定,就像已編寫以下代碼一樣。THISLOADNEWEVENTHANDLERTHISPAGE_LOAD這種自動(dòng)識(shí)別特殊名稱的功能由PAGE指令的AUTOEVENTWIREUP屬性控制。如果將該屬性設(shè)置為FALSE,則任何想要處理某個(gè)事件的應(yīng)用程序都需顯式地連接到該頁(yè)面事件。如果頁(yè)面不使用自動(dòng)事件關(guān)聯(lián)功能,就不必進(jìn)行額外的操作以匹配各名稱和事件,從而其性能也稍有提升。應(yīng)該注意的是,所有的MICROSOFTVISUALSTUDIONET項(xiàng)目在創(chuàng)建時(shí)都禁用了AUTOEVENTWIREUP屬性。然而,此屬性的默認(rèn)設(shè)置為TRUE,意味著諸如PAGE_LOAD等方法會(huì)被識(shí)別并被綁定到相關(guān)的事件。頁(yè)面的執(zhí)行過(guò)程包括下面表格中所列的一系列階段,并以具有一些應(yīng)用程序級(jí)事件和/或受保護(hù)且可重寫的方法為特征。8表格1ASPNET頁(yè)面生存周期中的關(guān)鍵事件階段頁(yè)面事件可重寫方法頁(yè)面初始化INIT加載視圖狀態(tài)LOADVIEWSTATE處理回發(fā)數(shù)據(jù)實(shí)現(xiàn)IPOSTBACKDATAHANDLER接口的任何控件中的LOADPOSTDATA方法加載頁(yè)面LOAD回發(fā)更改通知實(shí)現(xiàn)IPOSTBACKDATAHANDLER接口的任何控件中的RAISEPOSTDATACHANGEDEVENT方法處理回發(fā)事件控件所定義的任何回發(fā)事件實(shí)現(xiàn)了IPOSTBACKEVENTHANDLER接口的任何控件的RAISEPOSTBACKEVENT方法頁(yè)面呈現(xiàn)前階段PRERENDER保存視圖狀態(tài)SAVEVIEWSTATE呈現(xiàn)頁(yè)面RENDER卸載頁(yè)面UNLOAD在頁(yè)面級(jí)上,以上所列的某些階段是不可見的,并僅影響服務(wù)器控件編寫者和那些湊巧要?jiǎng)?chuàng)建從PAGE派生的類的開發(fā)人員。頁(yè)面向外界發(fā)送的活動(dòng)信號(hào)僅包括INIT、LOAD、PRERENDER、UNLOAD以及嵌入式控件所定義的所有回發(fā)事件。執(zhí)行的各個(gè)階段頁(yè)面生存周期中的第一個(gè)階段是初始化。這一階段的標(biāo)志就是INIT事件,在成功創(chuàng)建頁(yè)面的控件樹后,對(duì)應(yīng)用程序激發(fā)這個(gè)事件。換而言之,當(dāng)INIT事件發(fā)生時(shí),在ASPX源文件中靜態(tài)聲明的所有控件都已實(shí)例化并取其默認(rèn)值??丶蓲炱餓NIT事件,以便初始化在傳入的WEB請(qǐng)求的生存周期中所需的任何設(shè)置。例如,此時(shí)控件可以加載外部模板文件或設(shè)置各個(gè)事件的處理程序。應(yīng)該注意到,這時(shí)還沒(méi)有視圖狀態(tài)信息可供使用。在初始化之后,頁(yè)面框架立即加載該頁(yè)面的視圖狀態(tài)。所謂視圖狀態(tài)就是一些名稱/值對(duì)的集合,控件和頁(yè)面本身可將那些對(duì)所有WEB請(qǐng)求都必須始終有效的任何信息存儲(chǔ)在其中。視圖狀態(tài)表示頁(yè)面的調(diào)用上下文。一般情況下,其中包含上次在服務(wù)器中處理該頁(yè)面時(shí)各控件的狀態(tài)。首次在會(huì)話中請(qǐng)求頁(yè)面時(shí),視圖狀態(tài)為空。在默認(rèn)情況下,視圖狀態(tài)被存儲(chǔ)在一個(gè)隱藏字段中,而該字段是自行添加到頁(yè)面中的。該字段名稱為_VIEWSTATE。通過(guò)重寫

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論