关于在asp.net的web页面中的全局变量问题

在asp.net的web页面中是不是没有全局变量?
有的,在Class类内部的都是,只不过在WebWofm程式中跟WinForm和Console程式有些区别,
当页面刷新时,它们的值不会保持,依然会再次初始化.
Q:在WebForm中,一般用ViewState辅助存储全局变量的值.

是不是只能用session,cookie等来实现全局变量?
Q:用ViewState

web页面中的static变量是不是全局变量?使用static变量发现总出问题,有时正常,有时异常一何缘故?
Q:是全局变量,但最好不要用,在分布式程序中,如果几个客户端都在访问同一个界面,则
这些界面中的static类型的对象都是共享的,也就是说一个客户端此时修改了本界面中的static
对象的值,其它用户界面中的static值也会跟着改变. 会导致不可预料的情况发生

session一定要在global.asx中初始化定义吗?
Q:Session存储在服务端,当客户端第一个界面启动时,它就产生了,可以在所有页面中用.
  具体用法请看:
  几种常用的变量:
Application是应用程序级变量,如果用到多个用户之间的通信的时候用
Session    是用户变量,一个用户访问多个页面时可以保存数据到另一个页面,只要此用户不注销就可以
ViewState  页面变量,相当于页面全局变量,但是一旦退出当前页面,它就会丢失
 
用法:
如果有两个人: 甲和已在同学访问一个网站
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"] 值可以作为全局变量使用,只要不退出本页面,
 包括刷新页面,它都不会丢失
4.cookie
string a="a";
HttpCookie Cookie = new HttpCookie(a);
Cookie.Values.Add(a,"abc");
// 设置过期时间.
DateTime datCookie = DateTime.Now;
int intCookieTimeOut = 30;
TimeSpan tsCookie = new TimeSpan(intCookieTimeOut,0,0,0);
Cookie.Expires =  datCookie.Add(tsCookie);
try
{
Response.Cookies.Remove(a);
}
catch{}
Response.Cookies.Add(Cookie);

上一篇:【CF954I】Yet Another String Matching Problem(FFT)


下一篇:python技巧之下划线(二)