ASPNET內(nèi)置對象_第1頁
ASPNET內(nèi)置對象_第2頁
ASPNET內(nèi)置對象_第3頁
ASPNET內(nèi)置對象_第4頁
ASPNET內(nèi)置對象_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第七章 ASP.NET內(nèi)置對象2內(nèi)容 ASP.NET中有幾個常用的內(nèi)部對象,如Response、Request等,這些對象和服務(wù)器控件一樣,也是用.NET Framework類來實現(xiàn)的。當Web應用程序運行時,這些對象提供了豐富的功能,例如維護Web服務(wù)器活動狀態(tài),頁面輸入輸出等。 本章主要講解ASP.NET中幾個常用對象的功能以及這些對象的使用方法。3ASP.NET對象概述 在ASP中,有幾個內(nèi)部對象,如Response、Request等,是ASP技術(shù)中最重要的一部分。在ASP.NET中,這些對象仍然存在,使用的方法也大致相同,不同的是,這些內(nèi)部對象是由.NET Framework中封裝好的

2、類來實現(xiàn)的。因為這些內(nèi)部對象是在ASP.NET頁面初始化請求時自動創(chuàng)建的,所以在程序中可以直接使用,而無需對類進行實例化。4ASP.NET中常用的內(nèi)置對象對象名對象名功能說明功能說明Response用于向瀏覽器輸出信息用于向瀏覽器輸出信息Request用于獲取來自瀏覽器的信息用于獲取來自瀏覽器的信息Server提供服務(wù)器端的一些屬性和方法、訪問服務(wù)提供服務(wù)器端的一些屬性和方法、訪問服務(wù)器信息器信息Application用于共享多個會話和請求之間的全局信息用于共享多個會話和請求之間的全局信息Session用于存儲特定用戶的會話信息用于存儲特定用戶的會話信息Cookies用于設(shè)置或獲取用于設(shè)置或獲

3、取Cookie信息信息5Response對象q 由類由類System.Web.HttpResponse來實現(xiàn)。用于將來實現(xiàn)。用于將HTTP響應數(shù)據(jù)發(fā)送到客戶端。響應數(shù)據(jù)發(fā)送到客戶端。名名 稱稱功能說明功能說明BufferOutput屬性屬性獲取或設(shè)置一個值,該值指示是否緩沖輸出獲取或設(shè)置一個值,該值指示是否緩沖輸出ContentType屬性屬性獲取或設(shè)置輸出流的獲取或設(shè)置輸出流的HTTP MIME類型類型Cookies屬性屬性獲取響應獲取響應Cookie集合集合Expires屬性屬性獲取或設(shè)置該頁在瀏覽器上緩存過期之前的分鐘數(shù)獲取或設(shè)置該頁在瀏覽器上緩存過期之前的分鐘數(shù)IsClientConn

4、ected屬屬性性獲取一個值,該值指示客戶端是否仍連接在服務(wù)器上獲取一個值,該值指示客戶端是否仍連接在服務(wù)器上Clear方法方法清除緩沖區(qū)中的所有內(nèi)容輸出清除緩沖區(qū)中的所有內(nèi)容輸出Flush方法方法刷新緩沖區(qū),向客戶端發(fā)送當前所有緩沖的輸出刷新緩沖區(qū),向客戶端發(fā)送當前所有緩沖的輸出End方法方法將當前所有緩沖的輸出發(fā)送到客戶端,停止該頁的執(zhí)行將當前所有緩沖的輸出發(fā)送到客戶端,停止該頁的執(zhí)行Redirect方法方法將客戶端重定向到新的將客戶端重定向到新的URLWrite方法方法將信息寫入將信息寫入HTTP輸出內(nèi)容流輸出內(nèi)容流6Write方法 q Write方法用來向客戶端輸出信息。例如:方法用來

5、向客戶端輸出信息。例如:Response.Write(現(xiàn)在時間為:現(xiàn)在時間為: + DateTime.Now.ToString();q 在代碼呈現(xiàn)塊中,如果只有一個輸出語句,例在代碼呈現(xiàn)塊中,如果只有一個輸出語句,例如:如:則可以簡寫為:則可以簡寫為:7End方法qEnd方法用來輸出當前緩沖區(qū)的內(nèi)容,并中止方法用來輸出當前緩沖區(qū)的內(nèi)容,并中止當前頁面的處理。例如程序段:當前頁面的處理。例如程序段:Response.Write(歡迎光臨歡迎光臨);Response.End();Response.Write(我的網(wǎng)站!我的網(wǎng)站!);q只輸出只輸出“歡迎光臨歡迎光臨”,而不會輸出,而不會輸出“我的網(wǎng)

6、我的網(wǎng)站!站!”。End方法常常用來幫助調(diào)試程序方法常常用來幫助調(diào)試程序。 8Redirect方法q用來重定向頁面,例如:Response.Redirect(login.aspx);Response.Redirect(http:/);9ContentType屬性q用來獲取或設(shè)置輸出流的用來獲取或設(shè)置輸出流的HTTP MIME類型,也類型,也就是就是Response對象向瀏覽器輸出內(nèi)容的類型,對象向瀏覽器輸出內(nèi)容的類型,默認值為默認值為text/html。Response.ContentType=image/gif; 10BufferOutput屬性q 指示是否對頁面輸出進行緩沖。指示是否對頁面

7、輸出進行緩沖。q 如果使用了如果使用了Redirect方法對頁面進行重定向,則必須開方法對頁面進行重定向,則必須開啟輸出緩沖啟輸出緩沖,因為在關(guān)閉輸出緩沖的情況下,服務(wù)器直,因為在關(guān)閉輸出緩沖的情況下,服務(wù)器直接將頁面輸出到客戶端,當瀏覽器已經(jīng)接收到接將頁面輸出到客戶端,當瀏覽器已經(jīng)接收到HTML內(nèi)內(nèi)容后,是不允許再定向到另一個頁面的。容后,是不允許再定向到另一個頁面的。 11Request對象q 獲取客戶端信息。獲取客戶端信息。名名 稱稱功能說明功能說明Browser屬性屬性獲取有關(guān)請求的客戶端的瀏覽器功能的信息獲取有關(guān)請求的客戶端的瀏覽器功能的信息Cookies屬性屬性獲取客戶端發(fā)送的獲取

8、客戶端發(fā)送的Cookie的集合的集合Files屬性屬性獲取客戶端上傳的文件的集合獲取客戶端上傳的文件的集合Form屬性屬性獲取表單變量的集合獲取表單變量的集合QueryString屬性屬性獲取獲取HTTP查詢字符串變量集合查詢字符串變量集合ServerVariables屬性屬性獲取獲取 Web 服務(wù)器變量的集合服務(wù)器變量的集合UserHostAddress屬屬性性獲取遠程客戶端的主機獲取遠程客戶端的主機IP地址地址SaveAs方法方法將將HTTP請求保存到磁盤請求保存到磁盤12獲取集合中的數(shù)據(jù) q語法:語法:Request.Collectionkeyq其中其中Collection為數(shù)據(jù)集合,為

9、數(shù)據(jù)集合,key為集合中數(shù)為集合中數(shù)據(jù)的關(guān)鍵字,當據(jù)的關(guān)鍵字,當Collection為為Cookies、Form、QueryString、ServerVariables四種集合時,四種集合時,其中的其中的Collection可以省略。如果省略了可以省略。如果省略了Collection,則,則Request對象會依照對象會依照QueryString、Form、Cookies、ServerVariables的順序查找,直至找到關(guān)鍵的順序查找,直至找到關(guān)鍵字為字為key的數(shù)據(jù)并返回數(shù)據(jù)值,如果沒有找到,的數(shù)據(jù)并返回數(shù)據(jù)值,如果沒有找到,則返回則返回null。 13Form數(shù)據(jù)集合q用來獲取客戶端通過

10、用來獲取客戶端通過POST方法方法傳送的表單數(shù)據(jù)傳送的表單數(shù)據(jù)Desfault3.aspx: Desfault4.aspx: 14QueryString數(shù)據(jù)集合q 用來獲取客戶端通過用來獲取客戶端通過GET方法傳送的表單數(shù)據(jù)。方法傳送的表單數(shù)據(jù)。q 客戶端使用如下地址請求:客戶端使用如下地址請求:http:/localhost/doit.aspx?name=zhangsan&sex=nan或打開如下的超級鏈接:或打開如下的超級鏈接:doit.aspx在在doit.aspx中就可以使用中就可以使用Request.QueryStringname和和Request.QueryStringse

11、x來獲取相應的值來獲取相應的值zhangsan和和nan。15ServerVariables數(shù)據(jù)集合 環(huán)境變量名環(huán)境變量名說說 明明CONTENT_LENGTH發(fā)送到客戶端的文件長度發(fā)送到客戶端的文件長度CONTENT_TYPE發(fā)送到客戶端的文件類型發(fā)送到客戶端的文件類型QUERY_STRINGURL中查詢字符串中查詢字符串LOCAL_ADDR服務(wù)器服務(wù)器IP地址地址REMOTE_ADDR客戶端客戶端IP地址地址REMOTE_HOST客戶端主機名,例:客戶端主機名,例:Response.Write(Request.ServerVariablesREMOTE_HOST);REMOTE_PORT客

12、戶端端口號客戶端端口號SCRIPT_NAME當前文件的程序名(包含虛擬路徑)當前文件的程序名(包含虛擬路徑)SERVER_NAME服務(wù)器名稱服務(wù)器名稱SERVER_PORT服務(wù)器接受請求的端口號服務(wù)器接受請求的端口號PATH_INFO當前文件的虛擬路徑當前文件的虛擬路徑HTTP_USER_AGENT客戶端瀏覽器的信息客戶端瀏覽器的信息16Browser屬性void Page_Load(Object o,EventArgs e) HttpBrowserCapabilities bc = Request.Browser; Response.Write(您所用的瀏覽器信息如下:); Response

13、.Write(名稱及版本: + bc.Type + ); Response.Write(類型: + bc.Browser + ); Response.Write(版本號: + bc.Version + ); Response.Write(主版本號: + bc.MajorVersion + ); Response.Write(次版本號: + bc.MinorVersion + ); Response.Write(平臺: + bc.Platform + ); Response.Write(是否為測試版: + bc.Beta + ); Response.Write(是否為“美國在線”瀏覽器: + b

14、c.AOL + ); Response.Write(是否為基于Win16計算機: + bc.Win16 + ); Response.Write(是否為基于Win32計算機: + bc.Win32 + ); Response.Write(是否支持HTML框架: + bc.Frames + ); Response.Write(是否支持HTML表格: + bc.Tables + ); Response.Write(是否支持Cookie: + bc.Cookies + ); Response.Write(是否支持VBScript: + bc.VBScript + ); Response.Write(是

15、否支持JavaScript: + bc.JavaScript + ); Response.Write(是否支持Java Applets: + bc.JavaApplets + ); Response.Write(是否支持ActiveX: + bc.ActiveXControls + );獲取瀏覽器的信息:獲取瀏覽器的信息:17Server對象名名 稱稱功能說明功能說明MachineName屬性屬性獲取服務(wù)器的計算機名稱獲取服務(wù)器的計算機名稱ScriptTimeout屬性屬性獲取和設(shè)置文件最長執(zhí)行時間(以秒計)獲取和設(shè)置文件最長執(zhí)行時間(以秒計)CreatObject方法方法創(chuàng)建創(chuàng)建COM對象的

16、一個服務(wù)器實例對象的一個服務(wù)器實例Execute方法方法使用另一頁執(zhí)行當前請求使用另一頁執(zhí)行當前請求HtmlEncode方法方法對要在瀏覽器中顯示的字符串進行編碼對要在瀏覽器中顯示的字符串進行編碼HtmlDecode方法方法對已被編碼以消除無效對已被編碼以消除無效HTML字符的字符串進行字符的字符串進行解碼解碼UrlEncode方法方法對指定字符串以對指定字符串以URL格式進行編碼格式進行編碼UrlDecode方法方法對對URL格式字符串進行解碼格式字符串進行解碼MapPath方法方法將虛擬路徑轉(zhuǎn)換為物理路徑將虛擬路徑轉(zhuǎn)換為物理路徑Transfer方法方法終止當前頁的執(zhí)行,并開始執(zhí)行新的請求頁

17、終止當前頁的執(zhí)行,并開始執(zhí)行新的請求頁n 提供了對服務(wù)器信息的封裝,提供了對服務(wù)器上方法和屬性的訪問。18ScriptTimeout屬性q ScriptTimeout屬性用來查看或設(shè)置請求超時時間,默屬性用來查看或設(shè)置請求超時時間,默認時間為認時間為90秒。如果一個文件執(zhí)行時間超過此屬性設(shè)秒。如果一個文件執(zhí)行時間超過此屬性設(shè)置的時間,則自動停止執(zhí)行,這樣可以防止某些可能置的時間,則自動停止執(zhí)行,這樣可以防止某些可能進入死循環(huán)的程序?qū)е路?wù)器資源的大量消耗。進入死循環(huán)的程序?qū)е路?wù)器資源的大量消耗。q 如果頁面需要較長的運行時間,比如要上傳一個非常如果頁面需要較長的運行時間,比如要上傳一個非常大

18、的文件,就需要設(shè)置一個較長的請求超時時間,例大的文件,就需要設(shè)置一個較長的請求超時時間,例如:如:Server.ScriptTimeout=200;就把最長執(zhí)行時間設(shè)置為就把最長執(zhí)行時間設(shè)置為200秒。秒。在頁面中添加:在頁面中添加: 19HtmlEncode方法void Page_Load(Object o,EventArgs e) string str1,str2;/定義兩個字符串變量 str1=大家好!;/包含有HTML標記的字符串 str2=Server.HtmlEncode(str1);/對字符串編碼 Response.Write(str1);/輸出原始字符串 Response.Wr

19、ite(str2);/輸出編碼后的字符串輸出結(jié)果:大家好!大家好!20UrlEncode方法n 用于編碼字符串,以便通過URL從Web服務(wù)器到客戶端進行可靠的HTTP傳輸。void Page_Load(Object o,EventArgs e) string url; url=http:/myserver/1.aspx?a=; url+=Server.UrlEncode(“ycj);/對傳遞的值進行編碼 url+=&b=+Server.UrlEncode(“male);/對傳遞的值進行編碼 Response.Write(url);/輸出編碼后的字符串 21 MapPath方法n 該方法

20、可將指定的相對或者虛擬路徑映射到服務(wù)器上相應的物理目錄上例:void Page_Load(Object o,EventArgs e) Response.Write(當前目錄物理路徑: + Server.MapPath(.); Response.Write(“當前虛擬目錄物理路徑:” + Server.MapPath(“./) Response.Write(網(wǎng)站根物理路徑: + Server.MapPath(/); Response.Write(當前頁面物理路徑: + Server.MapPath(Request.FilePath); Response.Write(上級目錄物理路徑: + Ser

21、ver.MapPath(./);22 Execute方法q Execute方法用來停止執(zhí)行當前網(wǎng)頁,轉(zhuǎn)到新的網(wǎng)頁方法用來停止執(zhí)行當前網(wǎng)頁,轉(zhuǎn)到新的網(wǎng)頁執(zhí)行,執(zhí)行完畢后再返回到原網(wǎng)頁繼續(xù)執(zhí)行。執(zhí)行,執(zhí)行完畢后再返回到原網(wǎng)頁繼續(xù)執(zhí)行。 例:例: 先執(zhí)行;先執(zhí)行; 接著執(zhí)行;接著執(zhí)行; 23 Transfer方法q Transfer方法與方法與Execute方法類似,不同的是,方法類似,不同的是,Transfer方法執(zhí)行完新網(wǎng)頁后,不再返回原網(wǎng)頁執(zhí)行。方法執(zhí)行完新網(wǎng)頁后,不再返回原網(wǎng)頁執(zhí)行。 先執(zhí)行;先執(zhí)行; 不會不會執(zhí)行執(zhí)行; 24Application對象q ASP.NET 應用程序是單個應用程

22、序是單個 Web 服務(wù)器上的某個虛擬服務(wù)器上的某個虛擬目錄及其子目錄范圍內(nèi)的所有文件、頁、處理程序、模目錄及其子目錄范圍內(nèi)的所有文件、頁、處理程序、模塊和代碼的總和。如果想在整個應用程序范圍內(nèi)存儲一塊和代碼的總和。如果想在整個應用程序范圍內(nèi)存儲一些所有用戶共享的信息,些所有用戶共享的信息,Application對象將是最佳的對象將是最佳的選擇,利用選擇,利用Application存儲的變量和對象在整個應用存儲的變量和對象在整個應用程序內(nèi)執(zhí)行的所有程序內(nèi)執(zhí)行的所有ASP.NET頁面中都是可用的,并且頁面中都是可用的,并且值也是相同的。值也是相同的。q 網(wǎng)站打開,就創(chuàng)建網(wǎng)站打開,就創(chuàng)建Applic

23、ation對象。對象。q Application對象使用的注意事項:對象使用的注意事項:n是一個集合對象,除了包含是一個集合對象,除了包含文本信息文本信息外,也可以外,也可以存儲對象存儲對象。n如果站點開始就有很大的通信量,建議使用配置文件進行處理,如果站點開始就有很大的通信量,建議使用配置文件進行處理,而不要使用而不要使用Application對象。對象。25利用Application存儲信息 q Add:string str1=這是一個字符串這是一個字符串; int int1=34;Application.Add(var1,str1);Application.Add(var2,int1);

24、 q Applicationvar1=str1;Applicationvar2=int1;q Lock()、UnLock():加鎖與解鎖:加鎖與解鎖 26讀取Application中的信息q object obj1,obj2;obj1=Application0;obj2= Applicationvar1;q obj1=Application.Contents0;obj2= Application.Contentsvar1;q 轉(zhuǎn)換類型:轉(zhuǎn)換類型:intVar=(int)Applicationvar1;strVar=(string)Applicationvar2; q 判斷對象是否存在:判斷對象

25、是否存在:if (Applicationvar1!=null) int intVar=(int)Applicationvar1; q 例:例: 27刪除Application中的信息q刪除特定變量:刪除特定變量:Application.Remove(var1);q清除所有變量:清除所有變量:Application.RemoveAll();Application.Clear();28 Session對象q存儲局部的、特定于用戶的信息。存儲局部的、特定于用戶的信息。q對應于瀏覽器與服務(wù)器的同一次會話,在瀏覽對應于瀏覽器與服務(wù)器的同一次會話,在瀏覽器第一次請求應用程序的某個頁面時,會話開器第一次請求

26、應用程序的某個頁面時,會話開始;始;在會話超時或被關(guān)閉時,會話結(jié)束在會話超時或被關(guān)閉時,會話結(jié)束。可以。可以在在Global.aspxGlobal.aspx文件中編寫文件中編寫Session_StartSession_Start和和Session_EndSession_End事件處理程序。事件處理程序。q當一個客戶第一次登錄網(wǎng)站時,系統(tǒng)會為其分當一個客戶第一次登錄網(wǎng)站時,系統(tǒng)會為其分配一個配一個SessionSession,只有當客戶退出或者其生命周,只有當客戶退出或者其生命周期結(jié)束時,信息才會被清除。期結(jié)束時,信息才會被清除。29 Session工作原理qSessionIDSessionID

27、:對會話進行標識和跟蹤。:對會話進行標識和跟蹤。qSessionIDSessionID存放在存放在CookiesCookies內(nèi)或自動嵌套在內(nèi)或自動嵌套在URLURL中中。qSessionSession中信息的存儲位置可以是中信息的存儲位置可以是ASP.NETASP.NET進程、進程、狀態(tài)服務(wù)器、狀態(tài)服務(wù)器、SQL ServerSQL Server數(shù)據(jù)庫。數(shù)據(jù)庫。qSessionSession的生命周期默認為的生命周期默認為2020分鐘,可以通過分鐘,可以通過SessionSession對象的對象的TimeoutTimeout屬性來設(shè)置。屬性來設(shè)置。 30使用Sessionq 存儲信息:存儲信

28、息:string str1=“這是一個字符串這是一個字符串”; Session.Add(var1,str1);/Sessionvar1=str1;q 讀取信息:讀取信息:string str1=(string)Sessionvar1;q 判斷對象是否存在:判斷對象是否存在:if (Sessionvar1!=null) .q Remove()、RemoveAll()、Clear()刪除變量。刪除變量。q 用用Abandon()結(jié)束會話。結(jié)束會話。 31配置Session 32cookieless屬性q此屬性是可選的,用來指示會話是否使用客戶此屬性是可選的,用來指示會話是否使用客戶端端Cookie

29、,當取值為,當取值為true時,指示應使用不具時,指示應使用不具有有Cookie的會話,這種情況下的會話,這種情況下SessionID會嵌會嵌入入URL中;當取值為中;當取值為false時,指示使用具有時,指示使用具有Cookie的會話,這種情況下的會話,這種情況下SessionID會存入會存入客戶端客戶端Cookies中。默認值為中。默認值為false。 33timeout屬性q此屬性是可選的,用來指定在放棄一個會話前此屬性是可選的,用來指定在放棄一個會話前該會話可以處于空閑狀態(tài)的該會話可以處于空閑狀態(tài)的分鐘分鐘數(shù)。默認值為數(shù)。默認值為20。34mode屬性q此屬性是必須的,用來指定在哪里存

30、儲會話狀此屬性是必須的,用來指定在哪里存儲會話狀態(tài)。該屬性有四種可能的值:態(tài)。該屬性有四種可能的值:nOff:指示禁用會話狀態(tài)。:指示禁用會話狀態(tài)。nInProc:指示使用進程內(nèi)會話狀態(tài)模式。:指示使用進程內(nèi)會話狀態(tài)模式。nStateServer:指示使用狀態(tài)服務(wù)器模式。必須設(shè):指示使用狀態(tài)服務(wù)器模式。必須設(shè)置置stateConnectionString屬性。屬性。nSQLServer:指示使用:指示使用SQL模式,必須設(shè)置模式,必須設(shè)置sqlConnectionString屬性屬性。 35Cookies對象q使用使用Response對象對象的的Cookies屬性設(shè)置屬性設(shè)置Cookie信息,

31、使用信息,使用Request對象對象的的Cookies屬屬性讀取性讀取Cookie信息。信息。 36Cookie介紹qCookie是一小段文本信息,伴隨著用戶請求同是一小段文本信息,伴隨著用戶請求同頁面一起在頁面一起在 Web 服務(wù)器和瀏覽器之間傳遞。服務(wù)器和瀏覽器之間傳遞。用戶每次訪問站點時,用戶每次訪問站點時,Web應用程序都可以讀應用程序都可以讀取取Cookie包含的信息。包含的信息。Cookie為為Web應用程應用程序保存用戶相關(guān)信息提供了一種有用的方法,序保存用戶相關(guān)信息提供了一種有用的方法,例如,當用戶訪問一個網(wǎng)站時,網(wǎng)站程序員可例如,當用戶訪問一個網(wǎng)站時,網(wǎng)站程序員可以利用以利用

32、Cookie保存用戶首選項或其他信息,這保存用戶首選項或其他信息,這樣,當用戶下次再訪問這個網(wǎng)站時,應用程序樣,當用戶下次再訪問這個網(wǎng)站時,應用程序就可以檢索以前保存的信息。就可以檢索以前保存的信息。37Cookie的基本工作原理q 假設(shè)用戶請求訪問網(wǎng)站假設(shè)用戶請求訪問網(wǎng)站上的某個頁面上的某個頁面時,應用程序發(fā)送給該用戶的不僅僅只有一個頁面,還時,應用程序發(fā)送給該用戶的不僅僅只有一個頁面,還有一個包含日期和時間信息的有一個包含日期和時間信息的Cookie,用戶的瀏覽器,用戶的瀏覽器在獲得頁面的同時還得到了這個在獲得頁面的同時還得到了這個 Cookie,并且將它保,并且將它保存在用戶硬盤上的某個

33、文件夾中。以后,如果該用戶再存在用戶硬盤上的某個文件夾中。以后,如果該用戶再次訪問該網(wǎng)站上的頁面,瀏覽器就會在用戶本地硬盤上次訪問該網(wǎng)站上的頁面,瀏覽器就會在用戶本地硬盤上查找與該查找與該URL相關(guān)聯(lián)的相關(guān)聯(lián)的Cookie。如果該。如果該Cookie存在,存在,瀏覽器就將它與頁面請求一起發(fā)送到網(wǎng)站,應用程序就瀏覽器就將它與頁面請求一起發(fā)送到網(wǎng)站,應用程序就能讀取能讀取Cookie信息從而能確定該用戶上一次訪問網(wǎng)站信息從而能確定該用戶上一次訪問網(wǎng)站的日期和時間。程序可以根據(jù)這些信息向用戶輸出相應的日期和時間。程序可以根據(jù)這些信息向用戶輸出相應的消息。的消息。 38Cookie的用途 q 最根本的

34、用途是幫助最根本的用途是幫助Web應用程序保存有關(guān)訪問者的應用程序保存有關(guān)訪問者的信息。例如,購物網(wǎng)站上的信息。例如,購物網(wǎng)站上的Web服務(wù)器跟蹤每個購物服務(wù)器跟蹤每個購物者,以便網(wǎng)站能夠管理購物車和其它的用戶相關(guān)信息;者,以便網(wǎng)站能夠管理購物車和其它的用戶相關(guān)信息;一個實施民意測驗的網(wǎng)站可以簡單地利用一個實施民意測驗的網(wǎng)站可以簡單地利用Cookie作為作為布爾值,表示用戶的瀏覽器是否已經(jīng)參與了投票,從而布爾值,表示用戶的瀏覽器是否已經(jīng)參與了投票,從而避免重復投票;而那些要求用戶登錄的網(wǎng)站則可以通過避免重復投票;而那些要求用戶登錄的網(wǎng)站則可以通過Cookie來確定用戶是否已經(jīng)登錄過,這樣用戶就

35、不必來確定用戶是否已經(jīng)登錄過,這樣用戶就不必每次都輸入憑據(jù)。因此每次都輸入憑據(jù)。因此Cookie的作用就類似于名片,的作用就類似于名片,它提供了相關(guān)的標識信息,可以幫助應用程序確定如何它提供了相關(guān)的標識信息,可以幫助應用程序確定如何繼續(xù)執(zhí)行。繼續(xù)執(zhí)行。 39使用Cookie的限制 q 大多數(shù)瀏覽器支持最多可達大多數(shù)瀏覽器支持最多可達4096字節(jié)的字節(jié)的 Cookie,如果,如果要將為數(shù)不多的幾個值保存到用戶計算機上,這一空間要將為數(shù)不多的幾個值保存到用戶計算機上,這一空間已經(jīng)足夠大,但不能用一個已經(jīng)足夠大,但不能用一個Cookie來保存數(shù)據(jù)集或其來保存數(shù)據(jù)集或其他大量數(shù)據(jù)。他大量數(shù)據(jù)。q 瀏覽

36、器限制每個站點可以在用戶計算機上保存的瀏覽器限制每個站點可以在用戶計算機上保存的Cookie數(shù)。數(shù)。q 用戶可以設(shè)置自己的瀏覽器,拒絕接受用戶可以設(shè)置自己的瀏覽器,拒絕接受Cookie。 q 所以:應用程序不應該依賴于所以:應用程序不應該依賴于Cookie。40Cookie示例 41設(shè)置Cookieq 設(shè)置設(shè)置Cookie就是向就是向Cookies集合里添加集合里添加Cookie對象,對象,Cookie對象的常用屬性如表所示。對象的常用屬性如表所示。名名 稱稱說說 明明Name獲取或設(shè)置獲取或設(shè)置Cookie的名稱的名稱Expires獲取或設(shè)置獲取或設(shè)置Cookie的過期日期和時間的過期日期和

37、時間Domain獲取或設(shè)置獲取或設(shè)置Cookie關(guān)聯(lián)的域關(guān)聯(lián)的域HasKeys獲取一個值,通過該值指示獲取一個值,通過該值指示Cookie是否具有子鍵是否具有子鍵Path獲取或設(shè)置要與獲取或設(shè)置要與Cookie一起傳輸?shù)奶摂M路徑一起傳輸?shù)奶摂M路徑Secure獲取或設(shè)置一個值,通過該值指示是否安全傳輸獲取或設(shè)置一個值,通過該值指示是否安全傳輸CookieValue獲取或設(shè)置單個獲取或設(shè)置單個Cookie值值Values獲取在單個獲取在單個Cookie對象中包含的鍵值對的集合對象中包含的鍵值對的集合42設(shè)置Cookie的名字q通過通過Cookie的的Name屬性來指定屬性來指定Cookie的名字,

38、的名字,因為因為Cookie是按名稱保存的,如果設(shè)置了兩個是按名稱保存的,如果設(shè)置了兩個名稱相同的名稱相同的Cookie,后保存的那一個將覆蓋前,后保存的那一個將覆蓋前一個,所以創(chuàng)建多個一個,所以創(chuàng)建多個Cookie時,每個時,每個Cookie都必須具有唯一的名稱,以便日后讀取時識別。都必須具有唯一的名稱,以便日后讀取時識別。 43設(shè)置Cookie的值qCookie的的Value屬性用來指定屬性用來指定Cookie中保存的中保存的值,因為值,因為Cookie中的值都是以字符串的形式保中的值都是以字符串的形式保存的,所以為存的,所以為Value指定值時,如果不是字符指定值時,如果不是字符串類型的

39、要進行類型轉(zhuǎn)換。串類型的要進行類型轉(zhuǎn)換。44Cookie的有效期q Cookie的的Expires屬性為屬性為DateTime類型的,用來指定類型的,用來指定Cookie的過期日期和時間:的過期日期和時間:Cookie的有效期。瀏覽器在的有效期。瀏覽器在適當?shù)臅r候刪除已經(jīng)過期的適當?shù)臅r候刪除已經(jīng)過期的Cookie。如果不給。如果不給Cookie指指定過期日期和時間,則為會話定過期日期和時間,則為會話Cookie,不會存入用戶的,不會存入用戶的硬盤,在瀏覽器關(guān)閉后就被刪除硬盤,在瀏覽器關(guān)閉后就被刪除 。q 應根據(jù)應用程序的需要來設(shè)置應根據(jù)應用程序的需要來設(shè)置Cookie的有效期,如果用的有效期,

40、如果用來保存用戶的首選項,則可以把其設(shè)置為永遠有效(例來保存用戶的首選項,則可以把其設(shè)置為永遠有效(例如如100年),如果用來統(tǒng)計用戶訪問次數(shù),則可以把有效年),如果用來統(tǒng)計用戶訪問次數(shù),則可以把有效期設(shè)置為半年。即使設(shè)置長期有效,用戶也可以自行決期設(shè)置為半年。即使設(shè)置長期有效,用戶也可以自行決定將其全部刪除定將其全部刪除 45設(shè)置Cookie代碼 q Response.Cookiesuserage.Value=23.ToString();Response.Cookiesuserage.Expires=DateTime.Now.AddDays(3); q HttpCookie mycookie=new HttpCookie(userage);mycookie.Value=23.ToString();mycookie.Expires=DateTime.Now.AddDays(3);Response.Cookies.Add(mycookie); 46設(shè)置多值Cookieq Response.Cookiesuserusernam

溫馨提示

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

評論

0/150

提交評論