【www.gdgbn.com--面向对象编程】

application对象读取数据的语法:
"读
数据=application( "数据名称 ")
"写
application( "数据名称 ")=数据
例:
dim   i
application(i)=application(i)+1

application数据非同步更新:
application.lock   "锁定对象
application(i)=application(i)+1
application.unlock   "解除锁定

application生命周期:
起于iis开始,终止于iis停止动作或关机


如果有两个人:   甲和已在同学访问一个网站
1.
sessin[ "userid "]   =   "甲 ";//     表示只要甲不注销,不文伦跳到哪个页面,string   str   =   session[ "userid "]都保存初始化时的数据,常用于在:   page_load事件中,验证身份

page_load()
{
  if(session[ "userid "]   ==   null   ||   session[ "userid "]   ==   " ")
  {
      response.redirect( "登录页面,重新登录 ");
    }
    else
    {
          呈现出页面
    }
}

2.  
application[ "x "];
只要赋了值,如:   application[ "x "];   则甲和已可以共享到此值,可以用于计数器,记录站点访问量
只要一个用户登录,则application[ "x "]   +=   1;//加一个数,表示有个新用户刚刚登录
3.
  this.viewstate[ "y "]   =   "abcde ";
  则表示在本页面中,this.viewstate[ "y "]   值可以作为全局变量使用,只要不退出本页面,
  包括刷新页面,它都不会丢失

application可以储存一般变量,也可以储存含有大量数据的对象.

1  void application_start(object sender, eventargs e)
 2     {
 3         //在应用程序启动时运行的代码
 4          application["count"] = 0;
 5         system.io.filestream fs = system.io.file.open(server.mappath("count.txt"), system.io.filemode.openorcreate);
 6         system.io.streamreader sr = new system.io.streamreader(fs);
 7         application["allusers"] = convert.toint32(sr.readline());
 8         sr.close();
 9         fs.close();
10     }
11     void application_end(object sender, eventargs e)
12     {
13         //在应用程序关闭时运行的代码
14 
15     }
16     void application_error(object sender, eventargs e)
17     {
18         //在出现未处理的错误时运行的代
19
20     }
21     void session_start(object sender, eventargs e)
22     {
23         //在新会话启动时运行的代码
24         application.lock();
25         application["count"] = convert.toint32(application["count"]) + 1;
26         application["allusers"] = convert.toint32(application["allusers"]) + 1;
27         system.io.filestream fs = new system.io.filestream("count.txt", system.io.filemode.openorcreate, system.io.fileaccess.readwrite);
28         system.io.streamwriter sw = new system.io.streamwriter(fs);
29         sw.writeline(application["allusers"]);
30         sw.close();
31         fs.close();
32         application.unlock();
33     }
34
35     void session_end(object sender, eventargs e)
36     {
37         application.lock();
38         application["count"] = convert.toint32(application["count"]) - 1;
39         application.unlock();
40
41     }

总结:
applicationd一般用于向存储一些不经常会变动的变量各常量,例如像系统菜单这种一但程序运行后就不大可能再变动的数据信息。
application有一个一好的地方,如里运用不好的话,存储的数据会没有计时性。因为也是跟应用程序是共存共亡的。

几种常用的变量:
application是应用程序级变量,如果用到多个用户之间的通信的时候用
session         是用户变量,一个用户访问多个页面时可以保存数据到另一个页面,只要此用户不注销就可以
viewstate     页面变量,相当于页面全局变量,但是一旦退出当前页面,它就会丢失

本文来源:http://www.gdgbn.com/jsp/28964/