標籤:
Application對象:記錄應用程式參數的對象
用於共用應用程式級資訊,即多個使用者共用一個Application對象。在第一個使用者請求ASP.NET檔案時,將啟動應用程式並建立Application對象。一旦Application對象被建立,它就可以共用和管理整個應用程式的資訊。在應用程式關閉之前,Application對象一直存在。所以,Application對象是用於啟動和管理ASP.NET應用程式的主要對象
屬性:
Application.AllKeys:返回全部Application物件變數名到一個字串數組中
Application.Count:擷取Application物件變數的數量
Application.Item:允許使用索引或者Application變數名稱傳回內容值
Application["app1"]="app1";Application[0]//給Application物件變數賦值
Application["app2"]="app2";Application[1]
Application["app3"]="app3";Application[2]
方法:
Application.Add("app1","app1");//新增一個Application變數
Application.Clear();//清除全部Application物件變數
Application.Lock();//鎖定全部Application物件變數
Application.Remove("app1");//使用變數名移除一個Application物件變數
Application.RemoveAll();//移除全部Application物件變數
Application.UnLock();//解除鎖定的Application物件變數
常用事件:
1、Application_Start事件
Application_Start事件在首次建立新的會話(即事件)之前發生,只有Application和Server內建對象可以使用。在Application_Start事件中引用Session、Request或Response對象將導致錯誤。由於Application對象是多使用者共用的,因此它與Session對象有本質區別,同時Application對象不會因為某一個甚至全部使用者的離開而消失,一旦建立了Application對象,那麼它就會一直存在直到網站關閉或者該Application對象被卸載,這通常需要很長時間。由於Application對象建立後不會自己登出,因此一定要特別小心使用。另外,它會佔用記憶體,要避免降低伺服器對其他工作的響應速度。中止Application對象有3中方法,分別為服務被中止、Global.asax檔案被改變或者該Application對象被卸載
2、Application_End事件
Application_End事件在應用程式退出時於Session_End事件之後發生,只有Application和Server內建對象可使用。Application_End事件只有在服務中止或者該Application對象卸載時才會觸發,如果單獨使用Application對象,該事件可以通過Application對象在利用Unload事件卸載時進行觸發。一個Application_End事件肯定發生在Session_End事件之後。Application_End事件觸發唯一一個指令碼程式,它存在於Global.asax檔案中
*如果希望服務中止或者Application對象卸載時執行某些操作,可以在Application_End事件中編寫相應代碼
Application應用:
實現線上人數統計
1 Void Session_Start(object sender, EventArgs e) 2 { 3 Application.Lock();//鎖定 4 Application["count"] = (int)Application["count"] + 1;//訪客增加 5 Application.UnLock();//開鎖 6 } 7 8 Void Session_End(object sender, EventArgs e) 9 {10 Application.Lock();//鎖定11 Application["count"] = (int)Application["count"] - 1;//訪客減少 12 Application.UnLock();//開鎖13 }View Code
Session對象:記錄瀏覽器端的變數對象
用來儲存跨網頁程式的變數或者對象。Session對象只針對單一網頁使用者,也就是說伺服器會為串連的用戶端分配各自的Session對象,不同的用戶端無法互相存取。當Session對象超過設定的有效時間時,Session對象就會消失。Session對象和Application對象都是Page對象的成員,因此可直接在網頁中使用。
屬性:
Session.Contents:擷取對當前工作階段狀態對象的引用
Item:擷取或設定會話值
TimeOut:設定Session對象的有效時間,預設值為20分鐘;可以在應用程式的web.config檔案中,使用sessionState配置元素的timeout屬性來設定TimeOut屬性,也可以直接使用程式碼來設定TimeOut屬性值
方法:
Abandon:此方法結束當前會話,並清除會話中的所有資訊
Add:用於向Session對象集合中添加一個新項
CopyTo:將工作階段狀態值的集合複製到一維數組中(從數組的指定索引處開始)
Clear:此方法清除全部的Session物件變數,但不結束會話
Session應用:
記錄使用者名稱和密碼
Session["UserName"] = UserName;
Session["PassWord"] = PassWord;
Application對象、Session對象、Cookie對象、Server對象初步認識