ASP.NET 的四种状态对象
ASP.NET中如果需要保存页面的状态,就需要用到4个状态管理的对象
这四个状态对象依据不通的特点分别用于不通的地方、
Application对象,是一个服务器端的对象,它的作用范围是整个应用程序。
例如: 在网站中进行访问量的统计,就需要用到Application对象来进行保存
下图所列出的是Application 对象长用的属性和方法
//保存数据 //可以直接以Add方法来直接添加一个 Application //Application中保存数据是以键值对的形式进行保存的。 Application.Add("key", 123); //也可以先声明一个值类型的数据然后直接添加给一个键值 Student stu = new Student() { StuAge=15, StuId=10, StuName="Tom" }; Application["Tom"] = stu; //当添加的数据在Application中已存在 //那么后添加的数据会对之前添加的数据进行覆盖 Student Jack = new Student() { StuAge = 16, StuId = 11, StuName = "Jack" }; Application["Tom"] = Jack; //读取Application的方式也很简单, //通过键来找到后直接输出就可以了 Student temp = Application["Tom"] as Student; Response.Write(temp.StuAge);
//修改数据 //为了保证修改的有限性 ,先对Application对象进行锁定 //锁定以后就只能又当前的用户进行修改 Application.Lock(); Student stuTemp = Application["Tom"] as Student; stuTemp.StuAge = 100; //在修改结束以后在进行解锁 Application.UnLock();
Session对象也是服务器端的状态保存对象,它主要是针对一个会话来进行的。
例如: 购物网站购物车功能的实现
下图是Session对象的常用属性和方法
//首先在一个页面创建一个Session对象 UserInfo user = new UserInfo(); user.UserName = this.txtloginId.Text.Trim(); user.UserPwd = this.txtLoginPwd.Text.Trim(); //创建壹个Sessoin对象来保存数据 Session["UserInfo"] = user; Session.Timeout = 1;//设置Session对象的过期时间,不设置的话默认是20分钟 //然后在另一个页面读取和输出这个对象 //Session 对象保存的object类型的数据,所以要记得类型转换 UserInfo user= (UserInfo)Session["UserInfo"]; Response.Write("欢迎," + user.UserName + "<br/>");
Cookie对象是客户端状态保存对象,它记录的是字符串形式的信息
Cookie只能保存4KB大小的文件,并且保存和输出的类型都是字符串类型的。
因为iCookie对象经常往返于客户端服务器之间用于交互。
所以它同时属于Response 和Request这两个对象
在创建方法二中,是可以设置Cookie的有效期的。
如果将时间设置为DateTime.MaxValue ,那么这个Cookie就永远不会过期
ViewStaff对象,客户端状态对象。
//设置viewstate //ViewState对象也是采用 键值对的方式来保存数据 //可以保存简单的值类型数据 ViewState["name"] = "Tom"; //也可以保存一个对象 //但是要注意Student 对象要序列化 //就是要具有【Serializabe】这个特性 Student stu = new Student { StuId=1, StuAge=16, StuName="Tom" }; ViewState["Student"] = stu; //读取ViewState Response.Write(ViewState["name"].ToString()); //在读取的时候要进行数据类型的转换 Response.Write((ViewState["Student"] as Student).StuName);