Application
对象
Application
对象用于共享应用程序级信息,即多个用户共享一个Application
对象。在第一个用户请求asp.net
文件时,Application
对象启动并创建,直到程序关闭。Application
对象是用于启动和管理asp.net
应用程序的主要对象。
存储和获取数据的基本语法
Application
对象可以存储多个对象信息,但要求这些对象信息的Key
是不同的。
添加一条数据
1、通过Add
方法,格式:
Appliction.Add("name1","value1");
Add
方法的第一参数为数据信息的Key
,第二个参数是数据信息的值。
2、通过对象的索引器直接添加,格式:
Application["name1"] = "value1";
更新已有数据
1、通过Set方法更新,格式:
Application.Set("name1","value1");
2、通过对象索引器,格式:
Application["name1"] = "value1";
获取一条数据
方式1:
Application.Get("name1");
方式2:
Appcliation["name1"];
加锁和解锁
由于Application
的作用域是全局应用程序的,所以在每一次更新时,为了避免多用户更新冲突,应该在更新前后执行加锁和解锁的动作,方法如下:
Application.Lock(); //加锁
Application.UnLock(); //解锁
Application
对象的基本使用——网站访问计数器
记录网站被访问次数的组件。当前用户访问网站时将计数器+1,相反,如果用户退出了网站,再将计数器-1,以下是具体步骤:
1、新建一个网站,点击Global.asax
文件,打开这个文件,然后在Application_Start
方法中将计数器变量初始化为0
protected void Application_Start(object sender, EventArgs e)
{
Application["count"] = 0; //在应用程序启动时运行的代码
}
2、当有新的用户访问网站时,将会一个新的Session
对象,[Session
对象的使用请点击我!]同时会调用Seesion_Start
方法,为了防止多个用户同时访问页面造成并行,所以将Application
对象加锁,同时将访问人数+1,代码:
void Session_Start(object sender,EventArgs e)
{
Application.Lock();
Application["count"] = (int)Application["count"] + 1;
Application.UnLock();
}
3、当用户退出该网站的时候,将关闭该用户的Session
对象,同时对Application
对象加锁,然后将访问人数-1,代码:
//在会话结束后运行的代码
void Session_End(object sender,EventArgs e)
{
/*
注意:只有在Web.config文件中的seesionstate模式设置为InProc时
才会引发Seesion_End事件,如果会话模式设置为StateServer或SQLServer,则不会引发该事件
*/
Application.Lock();
Application["count"] = (int)Application["count"] - 1;
Application.UnLock();
}
4、创建一个Default.aspx
页面,然后用一个Label
控件,用于显示访问人数
添加Label
控件:
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
绑定Label
控件来显示文本:
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = "您是该网站的第" + Application["count"].ToString() + "个访问者";
}
效果: