方法
|
信息量大小
|
作用域和保存时间
|
应用范围
|
保存位置
|
Application
|
任意大小
|
整个应用程序的生命期
|
整个应用程序/所有用户
|
服务器端
|
Cache
|
任意大小
|
可以根据需要设定
|
整个应用程序/所有用户
|
服务器端
|
Session
|
小量,简单的数据
|
用户活动时间+一段延迟时间(一般为20分钟)
|
单个用户
|
服务器端
|
Cookie
|
小量,简单的数据
|
可以根据需要设定
|
单个用户
|
客户端
|
Viewstate
|
小量,简单的数据
|
一个Web页面的生命期
|
单个用户
|
客户端
|
隐藏域
|
小量,简单的数据
|
一个Web页面的生命期
|
单个用户
|
客户端
|
查询字符串
|
小量,简单的数据
|
直到下次页面跳转请求
|
单个用户
|
客户端
|
using System; using System.Collections; using System.ComponentModel; using System.Web; using System.Web.SessionState; using System.IO; /// Global 的摘要说明。 public class Global : System.Web.HttpApplication { /// 必需的设计器变量。 private System.ComponentModel.IContainer components = null; private FileStream fileStream; private StreamReader reader;//读字符流 private StreamWriter writer;//写字符流 public Global() { InitializeComponent(); } protected void Application_Start(Object sender, EventArgs e) { Application["CurrentGuests"]=0;//初始花为0; fileStream = File.Open(Server.MapPath("counts.text"),FileMode.OpenOrCreate);//文件不存在,创建文件 reader = new StreamReader(fileStream);//要读取的完整路径 Application["AllGuests"] = Convert.ToInt32(reader.ReadLine()); //从当前流中读取一行字符并将数据作为字符串返回 reader.Close();//关闭流 } protected void Session_Start(Object sender, EventArgs e)//当用户访问网站时,在线用户+1,总访问数+1 { Application.Lock();//同步,避免同时写入 Application["CurrentGuests"] =(int)Application["CurrentGuests"]+ 1;//总在线用户数 Application["AllGuests"] =(int)Application["AllGuests"]+ 1;//访问网站的总用户数 fileStream = new FileStream(Server.MapPath("counts.text"),FileMode.OpenOrCreate,FileAccess.ReadWrite);// writer = new StreamWriter(fileStream);//实现一个写入流,使其以一种特定的编码向流中写入字符 writer.WriteLine(Application["AllGuests"].ToString());//把访问网站的总用户数再次写入到文件 writer.Close();//关闭写入流 Application.UnLock();//同步结束 } protected void Session_End(Object sender, EventArgs e)//当前用户退出网站时,在线用户数量-1, { Application.Lock(); Application["CurrentGuests"] =(int)Application["CurrentGuests"] - 1;//总在线用户数量-1 Application.UnLock(); }
private void Page_Load(object sender, System.EventArgs e) { this.Label1.Text = "正在访问站点的用户数:" + Application["CurrentGuests"].ToString(); this.Label2.Text ="访问过站点的总用户数:" + Application["AllGuests"].ToString(); }
//存放信息 Session["key"]="value" //读取数据 string UserName=Session["key"].ToString();
//存放信息 Response.Cookies["key"].Value="value"; //读取信息 string UserID=Response.Cookies["key"].Value;
//存放信息 ViewState["key"]="value"; //读取信息 string NameID=ViewState["nameID"].ToString();
//存放信息 Cache["nameID"]="0001"; //存放信息 Cache.Insert("nameID","0001"1); //读取信息 string NameID=Cache["nameID"].ToString();
//存放信息 Hidden.Value="0001"; //获取信息 string NameID=Hidden.Value;
Response.Redirect("List.aspx?nameID=0001&gradeID=002"); //执行上面的语句后在IE地址栏显示的URL的代码如下。 http://localhost/List.aspx?nameID=0001&grade=002 //当跳转到List.aspx后,可以通过以下代码获得所传递的信息。 string NameID.GradeID; NameID=Request.Params["nameID"]; GradeID=Request.Params["gradeID"];