[置顶] Application,Session,Cookie之Application对象
概述
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对象的更多相关文章
- (转)Application, Session, Cookie, Viewstate, Cache对象用法和区别
================================================================================ 1.Applicati ...
- Application,Session,Cookie,ViewState,Cache对象用法、作用域的区别
1.Application:用于保存所有用户共用的数据信息.在Asp.Net中类似的配置数据最好保存在Web.config文件中.如果使用Application对象,一个需要考虑的问题是任何写操作都要 ...
- .NET Application,Session,Cookie,ViewState,Cache对象用法
作用域 保存地址 生命周期Application 应用程序 服务器内存 IIS启动Session 整个站点 服务器内存 Session到时 默认20分钟Cashe 应用程序 服务器内存 应用程序的周期 ...
- ASP.NET Application,Session,Cookie和ViewState等对象用法和区别 (转)
在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等.下面分别介绍它们的用法和区别. 方法 信息量大小 作用域和保 ...
- Asp.net 服务器Application,Session,Cookie,ViewState和Cache区别
2.8 Context 的使用Context 对象包含与当前页面相关的信息,提供对整个上下文的访问,包括请求.响应.以及上文中的Session 和Application 等信息.可以使用此对象在网页之 ...
- Application,Session,Cookie,ViewState和Cache区别
在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等.下面分别介绍它们的用法和区别. 方法 信息量大小 作用域和保 ...
- 转载ASP.NET 状态管理Application,Session,Cookie和ViewState用法
转载原地址 http://www.cnblogs.com/cuishao1985/archive/2009/09/24/1573403.html ASP.NET状态管理 APPlication,Ses ...
- [区别]APPlication,Session,Cookie,ViewState和Cache
原文发布时间为:2009-08-01 -- 来源于本人的百度文章 [由搬家工具导入] 在ASP.NET中,有很多种保存信息的对象.例如:APPlication,Session,Cookie,ViewS ...
- 转:三种状态对象的使用及区别(Application,Session,Cookie)
Application状态对象 Application 对象是HttpApplication 类的实例,将在客户端第一期从某个特定的ASP.NET应用程序虚拟目录中请求任何URL 资源时创建.对于We ...
- APPlication,Session,Cookie,ViewState和Cache之间的区别
1.Application:用于保存所有用户共用的数据信息. 在Asp.Net中类似的配置数据最好保存在Web.config文件中.如果使用Application对象,一个需要考虑的问题是任何写操作都 ...
随机推荐
- C++设计模式---Strategy模式
一.前言 学习的第一个设计模式!不知道理解的对不对,期望大家一起多交流~ Strategy模式:策略模式,定义了算法族,分别封装起来,此模式可以让算法的变化独立于使用算法的客户.Strategy模式将 ...
- 如何给你的Android 安装文件(APK)瘦身
如何给你的Android 安装文件(APK)瘦身 本文翻译自:Putting Your APKs on Diet 原作者:Cyril Mottier Android的apk文件越来 ...
- iocfont 网页图标字体以及使用方法
在网页设计中使用图标字体(icon font)是件挺有新意的事情,使用图标字体能我们带来了一定的方便,比如在移动设备.Retina屏幕效果展示.兼容IE6/7浏览器以及能任意将图标放大缩小等,这些都是 ...
- 用sp_change_users_login消除Sql Server的孤立用户
异常详细信息: System.Data.SqlClient.SqlException: 拒绝了对对象 'zwj_EnterpriseActivities' (数据库 'Ntours',架构 'dbo' ...
- javascript 获取滚动条高度+常用js页面宽度与高度(转)
/******************** *获取窗口滚动条高度 ******************/ function getScrollTop() { var scrollTop=0; if(d ...
- 通过maven创建自己的archetype
最近项目组做好一套框架,为了推广需要创建一些空白项目给项目组使用,因为所有的空白项目里面的配置基本上都是一样的,为了减少重复工作,想通过maven创建一个自己的archetype,于是在网上大致搜了一 ...
- cxf的使用及安全校验-01创建简单的服务端接口
最近因为项目的需要,研究了一下webservice的使用: 这里以cxf2.7.0为例,大致介绍一下,也用于备份啦(张立胜) 大致介绍一下项目的情况:项目有maven管理,webservice调用的方 ...
- Solr中schema.xml的解释
接Solr-4.10.2与Tomcat整合.schema.xml位于D:\solr\data\solr\collection1\conf\中.1.fieldType节点 name: FieldT ...
- C# Excel 读取为Datatable
最近项目用到的读取Excel 为DataTable 兼容2003.2007.2010.记录一下,以后会用到 引用 NPOI.dll 和 EPPlus.dll using System; using S ...
- 14 java 日期处理 joda-time
http://www.joda.org/joda-time/ 任何企业应用程序都需要处理时间问题.应用程序需要知道当前的时间点和下一个时间点,有时它们还必须计算这两个时间点之间的路径.使用 JDK 完 ...