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应用:
实现在线人数统计
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }
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;
Cookie对象:也称缓存对象
用来保存客户端浏览器请求的服务器页面,也可用它存放非敏感性的用户信息。Cookie对象保存用户信息的时间可以根据用户的需要进行设置。并非所有的浏览器都支持Cookie,并且数据信息将以文本形式保存在客户端计算机中。
属性:
Clear:清除所有的Cookie
Expires:设定Cookie对象的有效时间,默认为1000分钟,若设为0,则可以实时删除Cookie对象
Name:取得Cookie对象的名称
Value:获取或设置Cookie对象的内容值
Path:获取或设置Cookie使用的URL
Expires属性必须被设置,若没有指定,则Cookie变量将不会被存储
方法:
Equals:确定制定Cookie是否等于当前的Cookie
ToString:返回此Cookie对象的一个字符串表现形式
Server对象:也称服务器对象
属性:
MachineName:获取服务器的计算机名称
ScriptTimeout:获取和设置请求超时值
方法:
HtmlDecode:对已被编码以消除无效HTML字符的字符串进行解码
HtmlEncode:对要在浏览器中显示的字符串进行编码
MapPath:返回与Web服务器上的指定虚拟路径相对应的物理文件路径
UrlDecode:对字符串进行解码,该字符串为了进行HTTP传输而进行编码并在URL中发送到服务器
UrlEncode:编码字符串,以便通过URL从Web服务器到客户端进行可靠的HTTP传输