你的位置:首页 > ASP.net教程

[ASP.net教程]Application对象、Session对象、Cookie对象、Server对象初步认识


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;