概述

Application为全局作用域,且只有一个Application对象,它可以存储访问任意页面的变量(数据存储类型都是Object,也就是任意类型),同时也被多页面使用(也为引用)。

Application集合


Contents用于获取(除Object标记和CreateObject方法创建的对象)所有Application对象

CreateObject集合取得Object标记建立的对象

关于 Application的方法

这里我们重点看下 Lock和集合的操作

Lock

Lock是避免操作同一变量时出现与时间有关的错误

实例1如:我们设置当有用户访问页面时,Application对象的Visitor加1

 protected void Session_Start(object sender,EventArgs e)
{
Session.Timeout = 1;//会话保持时间
Application.Lock();//锁定application对象变量,防止修改冲突 Application["Visitor"] =(int) Application["Visitor"] + 1;//注意这里的数据类型转换,Object类型转为Int
Application.UnLock();
}

集合的操作


Get, Set

Remove,Add


集合对应的操作和义类的属性是相同的。

以下实例供参考

实例2如:我们想在Application的Stat集合中一个名为Name,值是Tom的字符串

Application.Add("Name","Tom");
Application("Name")="Tom";

有一天我们想获取Name的名字,那么怎样获取呢,

Dim tmp as object
Tmp=Application("Name")或是
Tmp=Application.get("Name")都是可以获取的

修改Tom的值与此类似,这里就不再重复了

综合实例:

这里我们再来做一个访问网页次数的例子,这次和上次不同的是Session进行对比分析

<%@ PageLanguage="C#" AutoEventWireup="true"CodeBehind="test.aspx.cs" Inherits="global.test" %>

<!DOCTYPE html>

<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<metahttp-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title></title>
<style type="text/css"> div
{ font-size:20px;
font-weight:bold;
color:#f00;
margin-top:30px;
margin-left:40px;
} </style>
</head>
<body>
<form id="form1"runat="server">
<div>
<%
//设置ApplicationCount的值
int applicationCount = 1;
int sessionCount = 1;
//if语句判断appciationCount的值是否为空,不为空逐步加1,为空设置为1
if(Application["applicationCount"] == null)
{
Application["applicationCount"] = 1;
}
//不为空,aplication的值加1
else
{
applicationCount =(int)Application["ApplicationCount"] + 1;
Application["applicationCount"] = applicationCount;
} //ifsessionCount的值为空,位置为1,否则值加1
if (Session["sessionCount"]== null)
{
Session["sessionCount"] =1;
}
//sessionCount值不为空,值加1
else
{
sessionCount =(int)Session["sessionCount"] + 1;//将Object对象转为int类型,进行相加
Session["sessionCount"] =sessionCount;
}
Response.Write("当前页面由Application记录到的被访问了" + applicationCount +"次<br/>");
Response.Write("当前页面由Session记录到的被访问了" + sessionCount +"次<br/>");
%>
</div>
</form>
</body>
</html>

在页面运行后,我们看到如下结果Session和Application中的值是一样的,即使我们按F5刷新页面,结果也是一样,如下图:

效果图如下。

然后我们重新打开一个浏览器应用程序(注意不要在当前窗口中输入),会看到另一种如下情况

为何会出现这种情况呢,原因就在于Application是属于所有网站用户的,它会保存全局的数据,从web启动到web停止期间的所有的访问次数。而Session只与特定用户有关,只适合保存特定用户的信息。

通过以上小结我们发现:


Application是用于存储,访问和被访问全局对象。可添加删除对象,也可以有对象的启动,销毁事件(详见Global),

它和session的不同之处之一就体现在作用域的方面,session为个体所独有Application为全局的

[置顶] Application,Session,Cookie之Application对象的更多相关文章

  1. (转)Application, Session, Cookie, Viewstate, Cache对象用法和区别

    ================================================================================         1.Applicati ...

  2. Application,Session,Cookie,ViewState,Cache对象用法、作用域的区别

    1.Application:用于保存所有用户共用的数据信息.在Asp.Net中类似的配置数据最好保存在Web.config文件中.如果使用Application对象,一个需要考虑的问题是任何写操作都要 ...

  3. .NET Application,Session,Cookie,ViewState,Cache对象用法

    作用域 保存地址 生命周期Application 应用程序 服务器内存 IIS启动Session 整个站点 服务器内存 Session到时 默认20分钟Cashe 应用程序 服务器内存 应用程序的周期 ...

  4. ASP.NET Application,Session,Cookie和ViewState等对象用法和区别 (转)

    在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等.下面分别介绍它们的用法和区别. 方法 信息量大小 作用域和保 ...

  5. Asp.net 服务器Application,Session,Cookie,ViewState和Cache区别

    2.8 Context 的使用Context 对象包含与当前页面相关的信息,提供对整个上下文的访问,包括请求.响应.以及上文中的Session 和Application 等信息.可以使用此对象在网页之 ...

  6. Application,Session,Cookie,ViewState和Cache区别

    在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等.下面分别介绍它们的用法和区别. 方法 信息量大小 作用域和保 ...

  7. 转载ASP.NET 状态管理Application,Session,Cookie和ViewState用法

    转载原地址 http://www.cnblogs.com/cuishao1985/archive/2009/09/24/1573403.html ASP.NET状态管理 APPlication,Ses ...

  8. [区别]APPlication,Session,Cookie,ViewState和Cache

    原文发布时间为:2009-08-01 -- 来源于本人的百度文章 [由搬家工具导入] 在ASP.NET中,有很多种保存信息的对象.例如:APPlication,Session,Cookie,ViewS ...

  9. 转:三种状态对象的使用及区别(Application,Session,Cookie)

    Application状态对象 Application 对象是HttpApplication 类的实例,将在客户端第一期从某个特定的ASP.NET应用程序虚拟目录中请求任何URL 资源时创建.对于We ...

  10. APPlication,Session,Cookie,ViewState和Cache之间的区别

    1.Application:用于保存所有用户共用的数据信息. 在Asp.Net中类似的配置数据最好保存在Web.config文件中.如果使用Application对象,一个需要考虑的问题是任何写操作都 ...

随机推荐

  1. 基础总结篇之中的一个:Activity生命周期

    子曰:溫故而知新,能够為師矣.<論語> 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就全然掌握,那基本不大可能,所以我们须要常常回过头再细致研读几遍,以领悟到作者的思想精 ...

  2. stat(),lstat(),fstat() 获取文件/目录的相关信息

    stat 的使用 Linux有个命令,ls -l,效果如下: 这个命令能显示文件的类型.操作权限.硬链接数量.属主.所属组.大小.修改时间.文件名.它是怎么获得这些信息的呢,请看下面的讲解. stat ...

  3. IPMITOOL常用操作指令

    一.开关机,重启 1. 查看开关机状态: ipmitool -H (BMC的管理IP地址) -I lanplus -U (BMC登录用户名) -P (BMC 登录用户名的密码) power statu ...

  4. URLScan安装及配置(转)

    安装 URLScan 要安装 URLScan,请访问下面的 Microsoft Developer Network (MSDN) 网站: http://msdn2.microsoft.com/en-u ...

  5. Ubuntu 12.04.5 LTS 上安装hadoop 2.6.0后运行自带的例程wordcount

    注:我所有的操作均通过Xshell 5远程连接Ubuntu进行实施 第一步:启动hadoop,利用jps查看hadoop是否已经启动,如果没有启动用start-dfs.sh脚本启动(hadoop2.X ...

  6. [Mac] 使用Mac时的一些技巧

    这篇博客就用来记录自己在使用Mac时学来的一些技巧吧! 1. 如何开启 Sticky key (在屏幕上显示输入的控制键)   就是这个东西啦,就是在视频演示的时候让别人看到自己按了什么控制键. 在s ...

  7. Hadoop文件的基本操作

    Hadoop提供了大量的API对文件系统中的文件进行操作,主要包括: (1)读取文件 (2)写文件 (3)读取文件属性 (4)列出文件 (5)删除文件 1、读取文件 以下示例中,将hdfs中的一个文件 ...

  8. MAC中通过gem命令安装compass

    在MAC中通过gem命令安装compass时会出异常,原因是compass版本更新了,一些运行时所用到的依赖软件的版本没能得到更新,故而出现错误.例如,用以下命令安装compass: $ gem in ...

  9. java 编码转换

    在网络中爬取到的数据,编码可能与当前编译器的编码不相同,而导致可能产生显示乱码的问题.那么如何将网络的编码,转换为当前编译器认可的编码(一般为UTF-8),就是个问题了. 主要使用了两个方法: Str ...

  10. 解决Windows 7/win8 使用VMware虚拟机的NAT 不能上网

    最近在学习linux系统,在使用debian6更新源的时候,发现Nat模式上网就是配置不了.而内外网可以ping通.所以很苦恼.最后终于解决了. 以下操作在VMware10下进行 1.首先要设置一下 ...