城市公交查询系统毕业设计 外文翻译_第1页
城市公交查询系统毕业设计 外文翻译_第2页
城市公交查询系统毕业设计 外文翻译_第3页
城市公交查询系统毕业设计 外文翻译_第4页
城市公交查询系统毕业设计 外文翻译_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

外文翻译城市公交查询系统的设计与实现城市公交查询系统的设计与实现城市公交查询系统的设计与实现城市公交查询系统的设计与实现学生姓名指导教师副教授合作指导教师专业名称计算机科学与技术所在学院水产学院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页面对象模型摘要了解围绕ASPNETWEB页构建的事件模型,以及一个WEB页面在其转变为HTML的历程中的各个阶段。ASPNETHTTP运行时控制对象管线,对象管线首先将所请求的URL转换为一个页面类的活动实例,然后将其转换为普通HTML文本。本文将探讨一个页面的生存周期中的各个特征事件,并了解控件和页面编写者如何介入其中以改变其标准行为。简介MICROSOFTINTERNET信息服务IIS所收到的对某MICROSOFTASPNET页面的每个请求都被移交给ASPNETHTTP管线。HTTP管线由一系列托管对象组成,这些对象按顺序处理该请求,并完成从URL到普通HTML文本的转换。HTTP管线的入口点是HTTPRUNTIME类。ASPNET基础结构为辅助进程中所承载的每个APPDOMAIN创建此类的一个实例(请注意,该辅助进程为当前正在运行的每个ASPNET应用程序维护一个不同的APPDOMAIN)。HTTPRUNTIME类从内部池中选取一个HTTPAPPLICATION对象,并让其处理该请求。HTTP应用程序管理器所完成的主要任务就是找出将实际处理该请求的类。如果请求ASPX资源,则处理程序就是一个页面处理程序即某个继承自PAGE的类的一个实例。资源类型和处理程序类型之间的关联关系存储于该应用程序的配置文件中。更准确地说,在MACHINECONFIG文件的部分中定义默认的一组映射关系。然而,应用程序也可以在本地的WEBCONFIG文件中自定义自己的HTTP处理程序列表。下面的程序行举例说明了定义用于ASPX资源的HTTP处理程序的代码。扩展名可关联到一个处理程序类,或者更普遍地关联到一个处理程序工厂HANDLERFACTORY类。在所有情况下,负责处理请求的HTTPAPPLICATION对象都会获得一个实现IHTTPHANDLER接口的对象。如果根据HTTP处理程序来解析关联资源/类,那么所返回的类将直接实现该接口。如果资源绑定到处理程序工厂,则需要另外一个步骤。处理程序工厂类实现IHTTPHANDLERFACTORY接口,而该接口的GETHANDLER方法返回一个基于IHTTPHANDLER的对象。HTTP运行时如何能完成整个循环并处理页面请求呢IHTTPHANDLER接口特别提供了PROCESSREQUEST方法。通过对代表所请求页面的对象调用此方法,ASPNET基础结构启动相应过程,从而针对浏览器生成输出。真正的PAGE类特定页面的HTTP处理程序类型取决于URL。当首次调用URL时,将构建一个新类并将该类动态地编译成一个程序集。用于检查ASPX来源的语法分析过程的输出结果就是该类的源代码。该类被定义为ASP命名空间的一部分,并被赋予一个与原始URL相似的名称。例如,如果URL终结点是PAGEASPX,则类名称为ASPPAGE_ASPX。但是,也可通过编程设置PAGE指令的CLASSNAME属性来控制类的名称。HTTP处理程序的基类是PAGE。此类定义了所有页面处理程序所共享的方法和属性的最小集合。PAGE类中实现IHTTPHANDLER接口。在某些情况下,实际处理程序的基类并非PAGE,而是一个不同的类。例如,如果使用了代码隐藏,就会出现这种情况。代码隐藏是一种开发方法,它将页面所需的代码封装到一个单独的C或MICROSOFTVISUALBASICNET类中。页面的代码就是一组事件处理程序和帮助器方法,用以7实际创建该页面的行为。可以利用标记将这种代码定义为内联代码,或者也可将其放到一个外部类代码隐藏类中。代码隐藏类是一种继承自PAGE的类,但这种类具有一些额外的方法因而比较特殊。如果指定,代码隐藏类就用作HTTP处理程序的基类。还有一种情况,即当应用程序配置文件的部分中重新定义了PAGEBASETYPE属性时,HTTP处理程序也不是基于PAGE的。PAGEBASETYPE属性指出了包含页面处理程序的基类的类型以及程序集。派生自PAGE的这个类可自动给处理程序赋予一组自定义和扩展的方法和属性。页面生存周期一旦完全确定HTTP页面处理程序类,ASPNET运行时就调用该处理程序的PROCESSREQUEST方法以处理请求。通常情况下,无需更改此方法的实现方式,因为它是由PAGE类提供的。此实现方法一开始就调用FRAMEWORKINITIALIZE方法,以此建立页面的控件树。此方法是TEMPLATECONTROL类(PAGE类本身就是从该类派生出来的)的一个受保护的虚拟成员。任何针对ASPX资源而动态生成的处理程序都重写FRAMEWORKINITIALIZE。在此方法中,该页面的完整控件树得以构建。接下来,PROCESSREQUEST使该页面经历若干阶段初始化,加载视图状态信息和回发数据,加载页面的用户代码并执行回发服务器端事件。随后,该页面进入呈现模式收集更新后的视图状态;生成HTML代码然后将其发送到输出控制台。最后,卸载页面,并认为已完成对该请求的处理。在各个阶段中,页面都会激发一些WEB控件和用户定义的代码所能截获并处理的事件。其中的一些事件是嵌入式控件专用的,因而并不能在ASPX代码级进行处理。如果页面想要处理某个事件,它应该显式地注册相应的处理程序。然而,为了向后兼容早期的VISUALBASIC编程风格,ASPNET也支持一种隐式的事件挂起形式。在默认情况下,页面将尝试把特定的方法名与事件匹配起来;如果找到匹配的方法,就认为该方法是该事件的处理程序。ASPNET提供了六个方法名的特定识别。它们是PAGE_INIT、PAGE_LOAD、PAGE_DATABIND、PAGE_PRERENDER和PAGE_UNLOAD。这些方法被当作是PAGE类所提供的相应事件的处理程序。HTTP运行时将自动把这些方法与页面事件绑定起来,这样一来,开发人员就不必编写所需的粘接代码。例如,名为PAGE_LOAD的方法与页面的LOAD事件绑定,就像已编写以下代码一样。THISLOADNEWEVENTHANDLERTHISPAGE_LOAD这种自动识别特殊名称的功能由PAGE指令的AUTOEVENTWIREUP属性控制。如果将该属性设置为FALSE,则任何想要处理某个事件的应用程序都需显式地连接到该页面事件。如果页面不使用自动事件关联功能,就不必进行额外的操作以匹配各名称和事件,从而其性能也稍有提升。应该注意的是,所有的MICROSOFTVISUALSTUDIONET项目在创建时都禁用了AUTOEVENTWIREUP属性。然而,此属性的默认设置为TRUE,意味着诸如PAGE_LOAD等方法会被识别并被绑定到相关的事件。页面的执行过程包括下面表格中所列的一系列阶段,并以具有一些应用程序级事件和/或受保护且可重写的方法为特征。8表格1ASPNET页面生存周期中的关键事件阶段页面事件可重写方法页面初始化INIT加载视图状态LOADVIEWSTATE处理回发数据实现IPOSTBACKDATAHANDLER接口的任何控件中的LOADPOSTDATA方法加载页面LOAD回发更改通知实现IPOSTBACKDATAHANDLER接口的任何控件中的RAISEPOSTDATACHANGEDEVENT方法处理回发事件控件所定义的任何回发事件实现了IPOSTBACKEVENTHANDLER接口的任何控件的RAISEPOSTBACKEVENT方法页面呈现前阶段PRERENDER保存视图状态SAVEVIEWSTATE呈现页面RENDER卸载页面UNLOAD在页面级上,以上所列的某些阶段是不可见的,并仅影响服务器控件编写者和那些凑巧要创建从PAGE派生的类的开发人员。页面向外界发送的活动信号仅包括INIT、LOAD、PRERENDER、UNLOAD以及嵌入式控件所定义的所有回发事件。执行的各个阶段页面生存周期中的第一个阶段是初始化。这一阶段的标志就是INIT事件,在成功创建页面的控件树后,对应用程序激发这个事件。换而言之,当INIT事件发生时,在ASPX源文件中静态声明的所有控件都已实例化并取其默认值。控件可挂起INIT事件,以便初始化在传入的WEB请求的生存周期中所需的任何设置。例如,此时控件可以加载外部模板文件或设置各个事件的处理程序。应该注意到,这时还没有视图状态信息可供使用。在初始化之后,页面框架立即加载该页面的视图状态。所谓视图状态就是一些名称/值对的集合,控件和页面本身可将那些对所有WEB请求都必须始终有效的任何信息存储在其中。视图状态表示页面的调用上下文。一般情况下,其中包含上次在服务器中处理该页面时各控件的状态。首次在会话中请求页面时,视图状态为空。在默认情况下,视图状态被存储在一个隐藏字段中,而该字段是自行添加到页面中的。该字段名称为_VIEWSTATE。通过重写

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论