版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、電子教案楊春元ASPNET45動態(tài)網(wǎng)站開發(fā)實用教程第二章電子教案楊春元ASPNET45動態(tài)網(wǎng)站開發(fā)實用教程第二章2022年9月9日第2頁教學(xué)目標(biāo)了解ASP.NET的文件類型理解ASP.NET頁面的運行機(jī)制掌握Page類各事件的發(fā)生順序使用ASP.NET內(nèi)置對象網(wǎng)頁的重定向掌握Cookie的使用以及設(shè)置和修改方法視圖狀態(tài)的使用和關(guān)閉在web.config中創(chuàng)建用戶變量Global.asax文件的作用2022年9月5日第4頁教學(xué)目標(biāo)了解ASP.NET的文件類型2022年9月9日第3頁本章內(nèi)容2.1 ASP.NET應(yīng)用程序基礎(chǔ)2.2 頁面管理2.3 ASP.NET的內(nèi)置對象2.4 ASP.NET配置
2、管理2.5 上機(jī)練習(xí)2.6 習(xí)題2022年9月5日第5頁本章內(nèi)容2.1 ASP.NET應(yīng)用2022年9月9日第4頁本章內(nèi)容2.1 ASP.NET應(yīng)用程序基礎(chǔ)2.2 頁面管理2.3 ASP.NET的內(nèi)置對象2.4 ASP.NET配置管理2.5 上機(jī)練習(xí)2.6 習(xí)題2022年9月5日第6頁本章內(nèi)容2.1 ASP.NET應(yīng)用2022年9月9日第5頁2.1 ASP.NET應(yīng)用程序基礎(chǔ)ASP.NET應(yīng)用程序與傳統(tǒng)的桌面型應(yīng)用程序不同:傳統(tǒng)的桌面型應(yīng)用程序是一個獨立的exe文件,而ASP.NET應(yīng)用程序則總是被分成若干個Web頁面。這樣,用戶就可以從不同的入口進(jìn)入一個ASP.NET應(yīng)用程序,或者跟隨超鏈接
3、從一個Web應(yīng)用程序?qū)Ш降搅硪粋€Web應(yīng)用程序。每個ASP.NET應(yīng)用程序都共享一組資源和配置設(shè)置。另一個ASP.NET應(yīng)用程序則不能共享這些資源和配置,即使它們位于同一個Web服務(wù)器上。從技術(shù)的角度來講,每一個ASP.NET應(yīng)用程序都在一個獨立的“應(yīng)用程序域”(application domain)中執(zhí)行。2022年9月5日第7頁2.1 ASP.NET應(yīng)用程序基礎(chǔ)A2022年9月9日第6頁ASP.NET的文件類型ASP.NET應(yīng)用程序可以包含很多種不同類型的文件,不同類型的文件提供了不同的功能。在“添加新項”對話框中包含了允許向Web站點中添加的文件類型。這些能夠添加到站點中的文件可以分組到
4、不同的類別中。Web文件:.aspx文件、.ascx文件、.master文件、.htm/.html文件、.css文件、web.config文件、.sitemap文件、.js文件、.skin文件代碼文件:.asmx文件、Global.asax文件、.cs文件數(shù)據(jù)文件:.xml文件、.mdf文件、.dbml文件2022年9月5日第8頁ASP.NET的文件類型ASP.NE2022年9月9日第7頁ASP.NET應(yīng)用程序的目錄ASP.NET保留了一些特殊的子目錄,程序開發(fā)人員可以直接使用,并且還可以在應(yīng)用程序中增加任意多個文件和文件夾。Bin子目錄App_Code子目錄App_Data子目錄App_Gl
5、obalResources子目錄App_LocalResources子目錄App_WebReferences子目錄App_Browers子目錄App_Themes子目錄2022年9月5日第9頁ASP.NET應(yīng)用程序的目錄ASP.2022年9月9日第8頁Bin子目錄Bin子目錄包含應(yīng)用程序所需的,用于控件、組件或者需要引用的任何其他代碼的可部署程序集??梢栽贐in目錄中存儲編譯的程序集,例如:如果為自定義類編譯好了代碼,那么就可以將編譯后的程序集復(fù)制到Web應(yīng)用程序的Bin目錄中,這樣,所有頁就都可以使用這個類。Bin目錄中的程序集無需注冊。只要.dll文件位于Bin目錄中,ASP.NET就可以
6、識別它。如果更改了.dll文件,并將它的新版本寫入到了Bin目錄中,則ASP.NET也會檢測到更新,并對隨后的新頁請求使用新版本的.dll文件。App_Code子目錄和Bin子目錄是ASP.NET網(wǎng)站中的共享代碼文件夾,如果Web應(yīng)用程序要在多個頁之間共享代碼,就可以將代碼保存在Web應(yīng)用程序根目錄下的這兩個特殊目錄中。2022年9月5日第10頁Bin子目錄Bin子目錄包含應(yīng)用程2022年9月9日第9頁App_Code子目錄App_Code子目錄在Web應(yīng)用程序根目錄下,它存儲所有應(yīng)當(dāng)作為應(yīng)用程序的一部分動態(tài)編譯的類文件。這些類文件自動鏈接到應(yīng)用程序,而不需要在頁面中添加任何顯式指令或聲明來創(chuàng)
7、建依賴性。App_Code目錄中放置的類文件可以包含任何可識別的ASP.NET組件,包括自定義控件、輔助類、build提供程序、業(yè)務(wù)類、自定義提供程序和HTTP處理程序等。在開發(fā)時,對App_Code目錄的更改會導(dǎo)致整個應(yīng)用程序的重新編譯。對于大型項目,這可能不受歡迎,而且很耗時。為此,鼓勵大家將代碼進(jìn)行模塊化處理到不同的類庫中,按邏輯上相關(guān)的類集合進(jìn)行組織。應(yīng)用程序?qū)S玫妮o助類大多應(yīng)當(dāng)放置在App_Code文件夾中。2022年9月5日第11頁App_Code子目錄App_Co2022年9月9日第10頁App_Data子目錄App_Data子目錄保存應(yīng)用程序使用的數(shù)據(jù)庫。它是一個集中存儲應(yīng)用程
8、序所用數(shù)據(jù)庫的地方。該目錄是ASP.NET為程序提供存儲自身數(shù)據(jù)的默認(rèn)位置,該文件夾內(nèi)容不由ASP.NET處理。它通常以文件(諸如Microsoft Access或Microsoft SQL Server數(shù)據(jù)庫、XML文件、文本文件以及應(yīng)用程序支持的任何其他文件)的形式對數(shù)據(jù)進(jìn)行存儲。默認(rèn)情況下,ASP.NET賬戶被授予對該子目錄的完全訪問權(quán)限。如果要改變ASP.NET賬戶,一定要確保新賬戶被授予對該目錄的讀/寫訪問權(quán)。2022年9月5日第12頁App_Data子目錄App_Da2022年9月9日第11頁App_GlobalResources子目錄App_GlobalResources子目錄用
9、于保存Web應(yīng)用程序中的全局資源文件,資源文件是一些字符串表,當(dāng)應(yīng)用程序需要根據(jù)某些事情進(jìn)行修改時,資源文件可用于這些應(yīng)用程序的數(shù)據(jù)字典。可以在App_GlobalResources子目錄中添加程序集資源文件(.resx),它們會動態(tài)編譯,成為解決方案的一部分,供程序中的所有.aspx頁面使用。在使用ASP.NET 2.0/2.1時,必須使用resgen.exe工具,把資源文件編譯為.dll或.exe,才能在解決方案中使用。而從ASP.NET 3.5開始,資源文件的處理就容易多了。除了字符串之外,還可以在資源文件中添加圖像和其他文件。當(dāng)需要開發(fā)一個支持多種語言的Web網(wǎng)站時,該目錄用于進(jìn)行本地
10、化設(shè)置。2022年9月5日第13頁App_GlobalResourc2022年9月9日第12頁App_LocalResources子目錄App_GlobalResources子目錄用于合并可以在應(yīng)用程序范圍內(nèi)使用的資源。如果對構(gòu)造應(yīng)用程序范圍內(nèi)的資源不感興趣,而對只能用于一個.aspx頁面的資源感興趣,就可以使用該目錄。可以把專用于頁面的資源文件添加到該目錄中,方法是構(gòu)建.resx文件名,如下所示:Default.aspx.resxDefault.aspx.fi.resxDefault.aspx.ja.resxDefault.aspx.en-gb.resx這樣,就可以從App_LocalRes
11、ources目錄中的相應(yīng)文件中檢索在Default.aspx頁面上使用的資源聲明。如果沒有找到匹配的資源,就默認(rèn)使用Default.aspx.resx資源文件。2022年9月5日第14頁App_LocalResource2022年9月9日第13頁App_WebReferences子目錄App_WebReferences子目錄用于保存當(dāng)前Web應(yīng)用程序中用到的Web服務(wù)引用。2022年9月5日第15頁App_WebReferences2022年9月9日第14頁App_Browers子目錄App_Browsers子目錄包含 ASP.NET 用于標(biāo)識個別瀏覽器并確定其功能的瀏覽器定義 (.brows
12、er) 文件。瀏覽器定義文件是具有.browser文件擴(kuò)展名的XML文件。預(yù)定義的瀏覽器定義文件存儲在 %SystemRoot%Microsoft.NETFramework版本CONFIGBrowsers 目錄中。應(yīng)用程序級別的瀏覽器定義文件可以放在應(yīng)用程序的 App_Browsers 目錄中。2022年9月5日第16頁App_Browers子目錄App2022年9月9日第15頁App_Themes子目錄App_Themes子目錄用于存放Web應(yīng)用程序中使用的主題。主題是為站點上的每個頁面提供統(tǒng)一外觀和操作方式的一種新方法。通過skin文件、CSS文件和站點上服務(wù)器控件使用的圖像來實現(xiàn)主題功能
13、。所有這些元素都可以構(gòu)建一個主題,并存儲在解決方案的App_Themes目錄中。2022年9月5日第17頁App_Themes子目錄App_2022年9月9日第16頁本章內(nèi)容2.1 ASP.NET應(yīng)用程序基礎(chǔ)2.2 頁面管理2.3 ASP.NET的內(nèi)置對象2.4 ASP.NET配置管理2.5 上機(jī)練習(xí)2.6 習(xí)題2022年9月5日第18頁本章內(nèi)容2.1 ASP.NET應(yīng)2022年9月9日第17頁2.2 頁面管理ASP.NET頁面的代碼模式頁面生存周期Page類2022年9月5日第19頁2.2 頁面管理ASP.NET頁2022年9月9日第18頁ASP.NET頁面的代碼模式ASP.NET的頁面包含
14、兩個部分:一部分是可視化元素,包括標(biāo)簽、服務(wù)器控件以及一些靜態(tài)文本等;另一部分是頁面的程序邏輯,包括事件處理句柄和其他程序代碼。ASP.NET提供兩種模式來組織頁面元素和代碼:一種是單一文件模式;另一種是后臺代碼模式。兩種模式功能是一樣的,可以在兩種模式中使用同樣的控件和代碼,但要注意使用的方式不同2022年9月5日第20頁ASP.NET頁面的代碼模式ASP2022年9月9日第19頁頁面生存周期ASP.NET頁面在運行時將經(jīng)歷一個生命周期,在生命周期中,該頁面將執(zhí)行一系列處理步驟。這些步驟包括初始化、實例化控件、還原和維護(hù)狀態(tài)、運行事件處理程序代碼以及進(jìn)行呈現(xiàn)。與桌面應(yīng)用程序中的窗體不同,AS
15、P.NET網(wǎng)頁在使用窗體時不會啟動或運行,并且僅當(dāng)用戶單擊“關(guān)閉”按鈕時才會卸載。2022年9月5日第21頁頁面生存周期ASP.NET頁面在運2022年9月9日第20頁Page類在ASP.NET Framework中,Page類為ASP.NET應(yīng)用程序文件所構(gòu)建的對象提供基本行為。該類在System.Web.UI命名空間中,從TemplateControl類派生而來,而TemplateControl類繼承自System.Web.UI.Control,它也是一種特殊的Control類,并實現(xiàn)了IHttpHandler接口。Page對象對應(yīng)Web窗體,主要用來設(shè)置與網(wǎng)頁有關(guān)的各種屬性、方法和事件。
16、Page對象充當(dāng)頁面中所有服務(wù)器控件的命名容器。2022年9月5日第22頁Page類在ASP.NET Fra2022年9月9日第21頁Page對象在頁面工作過程中,每個頁面都被編譯為一個類,當(dāng)有請求的時候就對這個類進(jìn)行實例化。對于頁面的生存周期,Page對象一共要關(guān)心以下5個階段。頁面初始化:在這個階段,頁面及其控件被初始化,頁面確定這是一個新的請求還是一個回傳請求。頁面事件處理器Page_PreInit和Page_Init被調(diào)用。另外,所有服務(wù)器控件的PreInit和Init被調(diào)用。載入:經(jīng)過頁面初始化之后,頁面將進(jìn)入載入階段。在該階段,如果當(dāng)前頁面的請求是一個回傳請求,則該頁面將從視圖狀態(tài)
17、和控件狀態(tài)中加載控件的屬性。在此過程中,頁面將引發(fā)Load事件?;厮褪录幚恚喝绻埱笫且粋€回傳請求,任何控件的回發(fā)事件處理過程都將被調(diào)用。呈現(xiàn):在頁面呈現(xiàn)狀態(tài)中,視圖狀態(tài)被保存到頁面。頁面和控件的PreRender和Render方法先后被調(diào)用。最后,呈現(xiàn)的結(jié)果通過HTTP響應(yīng)發(fā)送回客戶端。卸載:對頁面使用過的資源進(jìn)行最后的清除處理,控件或頁面的Unload方法被調(diào)用。2022年9月5日第23頁Page對象在頁面工作過程中,每個2022年9月9日第22頁Web窗體頁指令Web窗體頁指令也稱為預(yù)編譯指令,用來指定當(dāng)請求ASP.NET頁和用戶控件時使用的設(shè)置。Page該指令定義ASP.NET頁分析
18、器和編譯器使用的頁的特定屬性,它只能包含在.aspx文件中,且每個.aspx文件中只能有一個Page指令Control該指令定義ASP.NET頁分析器和編譯器使用的用戶控件(.ascx文件)特定的屬性,它只能包含在.ascx文件中,且每個.ascx文件中只能有一個Control指令A(yù)ssembly 該指令在編譯過程中將程序集鏈接到當(dāng)前頁,以使程序集的所有類和接口都可用在該頁上Implements 該指令指示當(dāng)前頁或用戶控件實現(xiàn)指定的.NET框架接口Import該指令將命名空間顯示導(dǎo)入到頁中,使導(dǎo)入的命名空間的所有類和接口可用于該頁,導(dǎo)入的命名空間可以是.NET框架類庫或用戶定義的命名空間的一部
19、分OutputCache 該指令以聲明的方式控制ASP.NET頁或頁中包含的用戶控件的輸出緩存策略Reference 該指令以聲明的方式指示另一個用戶控件或頁源文件應(yīng)該被動態(tài)編譯并鏈接到在其中聲明該指令的頁Register該指令將別名與命名空間及類名關(guān)聯(lián)起來,以便在自定義控件語法中使用簡明的表示法2022年9月5日第24頁Web窗體頁指令Web窗體頁指令也2022年9月9日第23頁本章內(nèi)容2.1 ASP.NET應(yīng)用程序基礎(chǔ)2.2 頁面管理2.3 ASP.NET的內(nèi)置對象2.4 ASP.NET配置管理2.5 上機(jī)練習(xí)2.6 習(xí)題2022年9月5日第25頁本章內(nèi)容2.1 ASP.NET應(yīng)2022年
20、9月9日第24頁2.3 ASP.NET的內(nèi)置對象Request對象Response對象Application對象Session對象Server對象Cookie對象ViewState對象2022年9月5日第26頁2.3 ASP.NET的內(nèi)置對象2022年9月9日第25頁Request對象 Request對象是ASP.NET當(dāng)中最有用的對象之一,它與Response對象一起使用,達(dá)到溝通客戶端與服務(wù)器端的作用。Request對象接收客戶端通過表單或者URL地址串發(fā)送來的變量,同時,也可以接收其他客戶端的環(huán)境變量,如瀏覽器的基本情況、客戶端的IP地址等。Request對象是System.Web.Ht
21、tpRequest類的實例,當(dāng)用戶請求頁面時,ASP.NET將自動創(chuàng)建Request對象。ASP.NET是使用表單(Form)來實現(xiàn)用戶數(shù)據(jù)提交的。對于HTML表單,可以使用Get方法或Post方法來實現(xiàn)數(shù)據(jù)提交。如果使用Get方法,就要使用Request對象的QueryString集合來得到相關(guān)的信息;如果使用Post方法,就要使用Request對象的Form集合來得到相關(guān)信息。2022年9月5日第27頁Request對象 Request2022年9月9日第26頁Response對象Response對象用于向客戶端瀏覽器發(fā)生數(shù)據(jù),告訴瀏覽器回應(yīng)內(nèi)容的報頭、服務(wù)器端的狀態(tài)信息以及輸出指定的內(nèi)容
22、。用戶可以使用該對象將瀏覽器的數(shù)據(jù)已HTML的格式發(fā)送到用戶端的瀏覽器,它與Request組成一對接收、發(fā)送數(shù)據(jù)的對象,這也是實現(xiàn)動態(tài)的基礎(chǔ)。Response對象實際是System.Web命名空間中的HttpResponse類的實例。CLR會根據(jù)用戶的請求信息建立一個Response對象。2022年9月5日第28頁Response對象Respons2022年9月9日第27頁重定向到另一個頁面以編程的方式將用戶重定向到另一個頁面,在ASP.NET中非常有用和普遍。例如,在一個第三方支付頁面,一旦支付成功了,將在幾秒鐘之后自動跳轉(zhuǎn)到商家頁面。ASP.NET支持3種通過編寫程序?qū)⒂脩糁囟ㄏ虻叫马撁娴?/p>
23、主要方式:其中兩種就是使用Response對象的Redirect和RedirectPermanent(ASP.NET 4中新增的選項)方法,而第3種則是使用后面將要介紹的Server對象的Transfer方法,它在客戶端執(zhí)行。此處重點介紹前兩種方法。在每個ASPX頁面內(nèi),用戶都具有對Response屬性的訪問權(quán)限,Response對象的Redirect和RedirectPermanent方法會向瀏覽器發(fā)送請求新頁面的指令。2022年9月5日第29頁重定向到另一個頁面以編程的方式將用2022年9月9日第28頁Application對象Application對象用來保存希望在多個頁面之間傳遞的變量
24、。由于在整個應(yīng)用程序生存周期中,Application對象都是有效的,所以在不同的頁面中都可以對它進(jìn)行存取,就像使用全局變量一樣方便。Application對象是System.Web.HttpApplicationState類的實例,它可以在多個請求、連接之間共享公用信息,也可以在各個請求連接之間充當(dāng)信息傳遞的管道。Application對象可以建立Application變量,它和一般程序變量不同,Application變量是一個Contents集合對象,此變量可以為訪問網(wǎng)站的每位用戶提供一個共享數(shù)據(jù)的通道,因為Application變量允許網(wǎng)站的每位用戶獲取或更改其值。Application
25、對象在第1個Session對象(將在2.2.6節(jié)介紹)建立后創(chuàng)建,直到Web服務(wù)器關(guān)機(jī)活所有的用戶都離線后才會刪除。2022年9月5日第30頁Application對象Appl2022年9月9日第29頁使用Application對象不論網(wǎng)站中有多少位用戶同時瀏覽網(wǎng)站,在服務(wù)器端都只保留一份Application變量??梢允褂萌缦抡Z法格式來設(shè)置或讀取Application變量:Applicationtitle=金百合拉丁舞培訓(xùn)學(xué)校Application.Set(count,(int)Applicationcount + 1);ASP.NET應(yīng)用程序的每位用戶都可以存取Application變量,
26、用戶可以同時讀取Application變量,但是在同一時間只能允許一位用戶修改Application變量,這就需要使用Lock和Unlock方法。在修改Application變量之前先使用Lock方法進(jìn)行鎖定,修改完以后再使用Unlock方法解鎖。2022年9月5日第31頁使用Application對象不論2022年9月9日第30頁Session對象Session對象是System.Web.HttpSessionState類的實例,其作用是用于儲存特定的信息,但是它和Application對象在儲存信息所使用的對象是完全不同的。Application對象儲存的是共享信息,而Session儲存的
27、信息是局部的,是隨用戶不同而不同的。如果只需要在不同頁中共享數(shù)據(jù),而不是需要在不同的客戶端之間共享數(shù)據(jù)就可以使用Session對象。Session的生命周期是有限的(默認(rèn)值為20分鐘),可以使用Timeout屬性進(jìn)行設(shè)置。在Session的生命周期內(nèi),Session的值是有效的。如果用戶在大于生命周期的時間里沒有再訪問應(yīng)用程序,Session就會自動過期,Session對象將會被CLR釋放,其中保存的數(shù)據(jù)信息也將丟失。2022年9月5日第32頁Session對象Session對2022年9月9日第31頁Session變量每一個Session對象都具有唯一的SessionID編號,在瀏覽ASP.
28、NET應(yīng)用程序的整個過程中,都可以存取Session對象建立的變量。在ASP.NET Web應(yīng)用程序中可以使用SessionID編號判斷用戶是否仍在Session時間,它是直到Session對象的TimeOut屬性設(shè)定時間到時或執(zhí)行了Abandon方法后才會結(jié)束Session時間。如果同時有多位用戶瀏覽網(wǎng)站,那么每位用戶都被指定不同的SessionID編號,只允許擁有此ID的用戶存儲此ID的Session變量。Session變量是用戶的專用數(shù)據(jù),雖然每位用戶的Session變量名是相同的,但是,變量的值確可能不同。而且每個用戶只能存取自己的Session變量。2022年9月5日第33頁Sess
29、ion變量每一個Sessi2022年9月9日第32頁Server對象Server對象即服務(wù)器對象,就是在服務(wù)器上工作的一個對象,它包含一些與服務(wù)器相關(guān)的信息,是System.Web.HttpServerUtility類的實例。使用它可以獲取有關(guān)最新的出錯信息,在頁面之間傳遞控件,對HTML進(jìn)行編碼和解碼等。2022年9月5日第34頁Server對象Server對象即2022年9月9日第33頁服務(wù)器端重定向如果要對用戶的請求發(fā)出不同的頁面,而又不想修改客戶端的地址欄,那么,使用服務(wù)器端重定向就非常好。這樣可以隱藏頁面名稱和查詢字符串的細(xì)節(jié),從而產(chǎn)生從用戶的角度來看比較干凈的URL。這通常用在所謂
30、的URL重寫的情況中,用于創(chuàng)建干凈的URL。服務(wù)器端重定向使用的就是Server對象的Transfer方法。Server.Transfer不是指示瀏覽器去獲取一個新頁面,而是完全在服務(wù)器上發(fā)生。放棄舊頁面的輸出,并啟動新的頁面生命周期。然后將新的頁面生成的內(nèi)容發(fā)送回瀏覽器,而保持瀏覽器的地址欄不變。2022年9月5日第35頁服務(wù)器端重定向如果要對用戶的請求發(fā)2022年9月9日第34頁ViewState對象ViewState(視圖狀態(tài))對象是Page對象的一個屬性,是狀態(tài)管理中常用的一種對象,可以用來保存頁和控件的值。視圖狀態(tài)中存儲的常見數(shù)據(jù)類型有:字符串、整數(shù)、布爾值、Array對象、Arra
31、yList對象、哈希表和泛型對象等。視圖狀態(tài)是ASP.NET頁框架默認(rèn)情況下用于保存往返過程之間的頁面信息以及控件值的方法。當(dāng)呈現(xiàn)頁的HTML形式時,需要在回發(fā)過程中保留的頁的當(dāng)前狀態(tài)和值將被序列化為Base64編碼的字符串,并輸出到視圖狀態(tài)的隱藏字段中。2022年9月5日第36頁ViewState對象ViewSt2022年9月9日第35頁Cookie對象Cookie俗稱“小甜餅”,它其實只是一些小文本,將一些用戶信息儲存在客戶端的機(jī)器中,它全部存儲于Windows目錄下的Cookie文件夾中,以便于在每次請求時被服務(wù)器在設(shè)定的時期內(nèi)進(jìn)行讀取。Cookie的儲存大小是有限制的,一般瀏覽器會將其
32、大小控制在4096個字節(jié)以內(nèi)。Cookie與網(wǎng)站關(guān)聯(lián),而不是與特定的頁面關(guān)聯(lián)。因此,無論用戶請求站點中的哪一個頁面,瀏覽器和服務(wù)器都將交換Cookie信息。用戶訪問不同站點時,各個站點都可能會向用戶的瀏覽器發(fā)送一個Cookie,瀏覽器會分別存儲所有Cookie。2022年9月5日第37頁Cookie對象Cookie俗稱“2022年9月9日第36頁使用Cookie的優(yōu)點可配置到期規(guī)則:Cookie可以在瀏覽器會話結(jié)束時到期,或者可以在客戶端計算機(jī)上無限期存在,這取決于客戶端的到期規(guī)則。不需要任何服務(wù)器資源:Cookie存儲在客戶端并在發(fā)送后由服務(wù)器讀取。簡單性:Cookie是一種基于文本的輕量結(jié)
33、構(gòu),包含簡單的鍵/值對。數(shù)據(jù)持久性:雖然客戶端計算機(jī)上Cookie的持續(xù)時間取決于客戶端上的Cookie過期處理和用戶干預(yù),但Cookie通常是客戶端上持續(xù)時間最長的數(shù)據(jù)保留形式。2022年9月5日第38頁使用Cookie的優(yōu)點可配置到期規(guī)2022年9月9日第37頁Cookie的修改與刪除服務(wù)器是不能直接修改Cookie的,修改Cookie的方法是重新創(chuàng)建一個同名的、具有新值的新Cookie。例如:HttpCookie cookie=new HttpCookie(name)Cookie.Value=“趙智暄在一個Cookie中可以存儲一個值,也可以儲存多個值。通過Value屬性,可以在Cool
34、ie中存儲一個值,如上面的代碼;通過Cookie的Values集合,可以在同一個Cookie中儲存多個值。例如:HttpCookie cookie=new HttpCookie(student);Cookie.Values.Add(“Admin”, “趙艷鐸);Cookie.Values.Add(Member1, 金百合);Cookie.Values.Add(Member2, 小石頭);由于Cookie在用戶計算機(jī)中,因此無法通過編程將其直接移除。但是,可以讓瀏覽器來刪除Cookie,具體做法是創(chuàng)建一個與要刪除的Cookie同名的新Cookie,并將該Cookie的到期日期設(shè)置為過去的某個日期
35、,當(dāng)瀏覽器檢查Cookie的到期日期時,便會丟棄這個已過期的Cookie。2022年9月5日第39頁Cookie的修改與刪除服務(wù)器是不2022年9月9日第38頁確定瀏覽器是否接受Cookie除了限制Cookie的大小,瀏覽器還限制站點可以在用戶計算機(jī)上存儲的Cookie的數(shù)量。大多數(shù)瀏覽器只允許每個站點存儲20個Cookie,如果試圖存儲更多的Cookie,則存放最早的Cookie便會被覆蓋掉。有些瀏覽器還會對它們將接受的來自所有站點的Cookie總數(shù)做出絕對限制,通常為300個。另外,用戶還可以將自己的瀏覽器設(shè)置為拒絕接受Cookie。設(shè)置為拒絕接受Cookie后,雖然不能向客戶端寫入Coo
36、kie信息,但是不會引發(fā)任何錯誤。同樣,瀏覽器也不向服務(wù)器發(fā)送有關(guān)其當(dāng)前Cookie設(shè)置的任何信息。確定客戶端瀏覽器是否接受Cookie的一種方法是嘗試編寫一個Cookie,然后再讀取該Cookie。如果無法讀取已編寫的Cookie,則可以假定瀏覽器不接受Cookie。2022年9月5日第40頁確定瀏覽器是否接受Cookie除了2022年9月9日第39頁本章內(nèi)容2.1 ASP.NET應(yīng)用程序基礎(chǔ)2.2 頁面管理2.3 ASP.NET的內(nèi)置對象2.4 ASP.NET配置管理2.5 上機(jī)練習(xí)2.6 習(xí)題2022年9月5日第41頁本章內(nèi)容2.1 ASP.NET應(yīng)2022年9月9日第40頁2.4 AS
37、P.NET配置管理使用ASP.NET配置系統(tǒng)的功能,可以配置整個服務(wù)器上的所有ASP.NET應(yīng)用程序、單個ASP.NET應(yīng)用程序和各個頁面或應(yīng)用程序子目錄,也可以配置各種具體的功能,如身份驗證模式、頁緩存、編譯器選項、自定義錯誤、調(diào)試和跟蹤選項等。web.config文件:每一個Web應(yīng)用程序都包含一個web.config配置文件,該配置文件為ASP.NET提供了各種基礎(chǔ)的設(shè)置。 Global.asax文件:Global.asax是ASP.NET應(yīng)用程序的“全局應(yīng)用程序類”,該文件是應(yīng)用程序用來保持應(yīng)用程序級的事件、對象和變量的。2022年9月5日第42頁2.4 ASP.NET配置管理使202
38、2年9月9日第41頁web.config文件web.config是一份XML文件,配置文件的全部內(nèi)容都嵌套在根元素中。內(nèi)含Web應(yīng)用程序相關(guān)設(shè)定的XML標(biāo)記,可用來簡化ASP.NET應(yīng)用程序的相關(guān)設(shè)定。web.config文件位于Web應(yīng)用程序的任何目錄中,統(tǒng)一命名為web.config,它決定了所在目錄及其子目錄的配置信息,并且子目錄下的配置信息會覆蓋其父目錄的配置,即子目錄如果沒有web.config文件,就繼承父目錄web.config文件的相關(guān)設(shè)定;如果子目錄有web.config文件,就會覆蓋父目錄web.config文件中的相關(guān)設(shè)定。在運行狀態(tài)下,ASP.NET會根據(jù)遠(yuǎn)程URL請求
39、,把訪問路徑下的各個web.config配置文件疊加,產(chǎn)生一個唯一的配置集合。2022年9月5日第43頁web.config文件web.c2022年9月9日第42頁配置文件的語法規(guī)則web.config的全部內(nèi)容都被置于標(biāo)記和之間。在XML標(biāo)記的屬性就是設(shè)定值,標(biāo)記名稱和屬性值格式是字符串,第一個開頭字母是小寫,之后每一個字的首字母大寫,例如。2022年9月5日第44頁配置文件的語法規(guī)則web.conf2022年9月9日第43頁在中創(chuàng)建用戶變量在Web配置文件的區(qū)段可以創(chuàng)建ASP.NET程序所需要的參數(shù),每個標(biāo)記可以創(chuàng)建一個參數(shù),屬性key是參數(shù)名稱,value是參數(shù)值。ASP.NET 2.0
40、以后新增了區(qū)段,可以指定數(shù)據(jù)庫連接字符串,在標(biāo)記的子標(biāo)記也可以創(chuàng)建數(shù)據(jù)庫連接字符串,屬性name是名稱,connectionStrings是連接字符串的值。在Web配置文件的區(qū)段通過標(biāo)記創(chuàng)建的參數(shù),在程序中可以使用System.Web.Configuration命名空間的WebConfigurationManager類來獲取。 WebConfigurationManager.AppSettingsMyParam;2022年9月5日第45頁在中創(chuàng)建2022年9月9日第44頁在sessionState區(qū)段設(shè)置Session狀態(tài)ASP.NET的Session狀態(tài)管理擁有擴(kuò)展性,可以在web.config文件的區(qū)段設(shè)定Session狀態(tài)管理,該區(qū)段屬于子標(biāo)記。 mode:Session狀態(tài)存儲的模式,可以是off(不存儲)、InProc(使用Cookie)、StateServer(使用狀態(tài)服務(wù)器)和SqlServer(存儲在SQL Server中)cookieless:是否使用Cookie存儲Session狀態(tài)。True表示不使用,F(xiàn)alse表示使用timeout:Session時間的期限,以分鐘計,默認(rèn)為2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 弛豫鐵電單晶水聲發(fā)射換能器的帶寬拓展研究
- 二零二五年度建筑項目消防安全責(zé)任協(xié)議書3篇
- 二零二五版管道工程鋼管供應(yīng)及安裝合同
- 水泥建材行業(yè)營業(yè)員工作總結(jié)
- 二零二五年度家庭矛盾離婚協(xié)議書2篇
- 二零二五年度商業(yè)項目地下車庫停車位租賃管理協(xié)議3篇
- 設(shè)定明確的工作崗位職責(zé)計劃
- 二零二五年度電梯智能化升級與物業(yè)管理服務(wù)合同3篇
- 二零二五年度教師編制外人員勞動合同范本2篇
- 2025版項目管理法律法規(guī)與國際慣例應(yīng)用指導(dǎo)與執(zhí)行合同3篇
- JB-T 8532-2023 脈沖噴吹類袋式除塵器
- 深圳小學(xué)英語單詞表(中英文)
- 護(hù)理質(zhì)量反饋內(nèi)容
- 山東省濟(jì)寧市2023年中考數(shù)學(xué)試題(附真題答案)
- 抖音搜索用戶分析報告
- 板帶生產(chǎn)工藝熱連軋帶鋼生產(chǎn)
- 鉆孔灌注樁技術(shù)規(guī)范
- 2023-2024學(xué)年北師大版必修二unit 5 humans and nature lesson 3 Race to the pole 教學(xué)設(shè)計
- 供貨進(jìn)度計劃
- 國際尿失禁咨詢委員會尿失禁問卷表
- 彌漫大B細(xì)胞淋巴瘤護(hù)理查房
評論
0/150
提交評論