ASP.NET页面对象 - Application

   获取请求的页的HttpApplicationState 对象。

一、HttpApplicationState

      作用:启用 ASP.NET 应用程序中多个会话和请求之间的全局信息共享。

      ASP.NET 应用程序的概念:是单个 Web 服务器上的某个虚拟目录及其子目录范围内的所有文件、页、处理程序、模块和代码的总和。

      HttpApplicationState 类的单个实例在客户端第一次从某个特定的 ASP.NET 应用程序虚拟目录中请求任何 URL 资源时创建。对于 Web 服务器上的每个 ASP.NET 应用程序都要创建一个单独的实例。然后通过内部 Application 对象公开对每个实例的引用。

Application对象是HttpApplicationState类的一个实例,它可以产生一个所有Web应用程序都可以存取的变量,这个变量的可以存取范围涵盖全部使用者,也就是说只要正在使用这个网页的程序都可以存取这个变量。

应用程序状态不在网络场(应用程序被多台服务器承载)或网络园(应用程序被同一台计算机上的多个进程承载)中共享。

 

二、HttpApplicationState 成员

HttpApplicationState 类型公开以下成员。

 方法

名称

说明

Add

将新的对象添加到 HttpApplicationState 集合中。

BaseAdd

将具有指定键和值的项添加到 NameObjectCollectionBase 实例中。 (继承自 NameObjectCollectionBase。)

BaseClear

移除 NameObjectCollectionBase 实例中的所有项。 (继承自 NameObjectCollectionBase。)

BaseGet

已重载。

BaseGetAllKeys

返回 String 数组,该数组包含 NameObjectCollectionBase 实例中的所有键。 (继承自 NameObjectCollectionBase。)

BaseGetAllValues

已重载。

BaseGetKey

获取 NameObjectCollectionBase 实例的指定索引处的项键。 (继承自 NameObjectCollectionBase。)

BaseHasKeys

获取一个值,通过该值指示 NameObjectCollectionBase 实例是否包含键不为 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing 的项。 (继承自 NameObjectCollectionBase。)

BaseRemove

移除 NameObjectCollectionBase 实例中具有指定键的项。 (继承自 NameObjectCollectionBase。)

BaseRemoveAt

移除 NameObjectCollectionBase 实例的指定索引处的项。 (继承自 NameObjectCollectionBase。)

BaseSet

已重载。

Clear

HttpApplicationState 集合中移除所有对象。

Equals

确定指定的 Object 是否等于当前的 Object (继承自 Object。)

Finalize

允许 Object 垃圾回收回收 Object 之前尝试释放资源并执行其他清理操作。 (继承自 Object。)

Get

已重载。 通过名称或索引获取 HttpApplicationState 对象。

GetEnumerator

返回循环访问 NameObjectCollectionBase 的枚举数。 (继承自 NameObjectCollectionBase。)

GetHashCode

用作特定类型的哈希函数。 (继承自 Object。)

GetKey

通过索引获取 HttpApplicationState 对象名。

GetObjectData

实现 ISerializable 接口,并返回序列化 NameObjectCollectionBase 实例所需的数据。 (继承自 NameObjectCollectionBase。)

GetType

获取当前实例的 Type (继承自 Object。)

Lock

锁定对 HttpApplicationState 变量的访问以促进访问同步。

MemberwiseClone

创建当前 Object 的浅表副本。 (继承自 Object。)

OnDeserialization

实现 ISerializable 接口,并在完成反序列化之后引发反序列化事件。 (继承自 NameObjectCollectionBase。)

Remove

HttpApplicationState 集合中移除命名对象。

RemoveAll

HttpApplicationState 集合中移除所有对象。

RemoveAt

按索引从集合中移除一个 HttpApplicationState 对象。

Set

更新 HttpApplicationState 集合中的对象值。

ToString

返回表示当前 Object String (继承自 Object。)

UnLock

取消锁定对 HttpApplicationState 变量的访问以促进访问同步。

 属性

名称

说明

AllKeys

获取 HttpApplicationState 集合中的访问键。

Contents

获取对 HttpApplicationState 对象的引用。

Count

获取 HttpApplicationState 集合中的对象数。 (重写 NameObjectCollectionBase..::.Count。)

IsReadOnly

获取或设置一个值,通过该值指示 NameObjectCollectionBase 实例是否为只读的。 (继承自 NameObjectCollectionBase。)

Item

已重载。 获取对 HttpApplicationState 集合中的对象的访问。重载该属性以允许通过名称或数字索引访问对象。

Keys

获取 NameObjectCollectionBase..::.KeysCollection 实例,该实例包含 NameObjectCollectionBase 实例中的所有键。 (继承自 NameObjectCollectionBase。)

StaticObjects

获取由 <object> 标记声明的所有对象,其中范围设置为 ASP.NET 应用程序中的“Application”

 显式接口实现

名称

说明

ICollection..::.CopyTo

从目标数组的指定索引处开始将整个 NameObjectCollectionBase 复制到兼容的一维 Array (继承自 NameObjectCollectionBase。)

ICollection..::.IsSynchronized

获取一个值,该值指示对 NameObjectCollectionBase 对象的访问是否同步(线程安全)。 (继承自 NameObjectCollectionBase。)

ICollection..::.SyncRoot

获取一个对象,该对象可用于同步对 NameObjectCollectionBase 对象的访问。 (继承自 NameObjectCollectionBase。)

 

三、Application应用

Application用于保存所有用户共用的数据信息。在ASP中,如果被保存的数据在应用程序的生存期中根本不会改变或者很少改变,那么使用Application对象保存是理想的选择。但是在ASP.NET中类似的配置数据最好保存在Web.config文件中。如果使用Application对象,一个需要考虑的问题是任何写操作都要在Application_OnStart事件(global.aspx)中完成。尽管使用Application.LockApplication.Unlock方法来避免写操作的同步,但是它串行化了对Application对象的请求,当网站访问量大的时候会产生严重的性能瓶颈。因此最好不要用此对象保存大的数据集。

使用Application对象保存信息的代码如下:

 

Global.asax文件中

protected void Application_Start(Object sender, EventArgs e)

{

   Application["zxrs"]=0;

}

protected void Session_Start(Object sender, EventArgs e)

{

  Application.Lock();

  Application["zxrs"] =(Int32)Application["zxrs"]+1;

  Application.UnLock();

}

protected void Session_End(Object sender, EventArgs e)

{

    Application.Lock();

    Application["zxrs"] =(Int32)Application["zxrs"]-1;

    Application.UnLock();

}

注:计算出的在线人数在一定时间段内是准确的,如果要获取精确的在线人数,可以将登录信息存储在后台数据库中或者读取当前会话集中对象的数量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值