内置对象:
1.QueryString - 地址栏数据拼接 get传值方式
格式:?key=value优点:简单好用,速度快,不消耗服务器内存。 缺点:只能传字符串,保密性不好,长度有限
Request - 获取请求对象
Request["key"] - 默认返回的就是string类型
Response - 响应请求对象
Response.Redirect(path); 页面重定向,path是重定向的地址
Response.Write(" aaaa "); 输出内容,一般用于输出JS语句。
Server.Transfer(path);页面重定向
Session相对全局对象
Session是非常安全的,因为它存在于服务器的内存中,取数据也是最快的
但是,Session不要滥用,因为会造成服务器内存溢出,导致服务器崩溃
Session里面不要放大东西,如果不用那么就会造成资源浪费
Session生命周期:只要页面有提交活动,则Session的所有项都会保持,页面在20分钟(默认配置)内没有任何提交活动时Session会失效。Session内存储的多个数据项是整体失效的。
创建 Session["user"] = 值;
Session["user"]是object类型使用时转成相应的类型
Cookies
会话Cookies的生命周期是:20分钟
Cookies是存在用户电脑的硬盘上
创建 Response.Cookies["user"].Value =值;
取值
1 if (Request.Cookies["user"] != null)//先判断cookies有没有内容 3 { 5 Label1.Text = Request.Cookies["user"].Value; 7 } 9 else// 没有内容 11 { 13 Response.Redirect("Default.aspx"); 15 }
持久Cookies,保存时间由网站代码来设置
Response.Cookies["user"].Expires = DateTime.Now.AddDays(7);
如果使用Cookies必须要存放汉字 在别的页面是不显示的 需要特定的编码方式
//创建Cookie ,用UrlEncode方法,TextBox1.Text需要被编译的内容,System.Text.Encoding.GetEncoding("utf-8")编码方式 Response.Cookies["as"].Value = HttpUtility.UrlEncode(TextBox1.Text, System.Text.Encoding.GetEncoding("utf-8")); //取值 ,用UrlDecode方法 Label1.Text = HttpUtility.UrlDecode(Request.Cookies["as"].Value, System.Text.Encoding.GetEncoding("utf-8"));
Application
它是全局对象,全局只有这一个对象
只要被创建出来,所有人取的值都是一样的
生命周期:永久
保存位置:服务端
Application["key"] 是所有的用户获取这个key里面的值都是一样的, 没有保存周期,他会一直保存着, 通常用作版本号
赋值:Application["key"]=值;
取值:Application.Get("key");
ViewState:记录上一个页面的信息
ViewState 属性提供一个字典对象,用于在对同一页的多个请求之间保留值。这是页用来在往返行程之间保留页和控件属性值的默认方法。在处理页时,页和控件的当前状态会散列为一个字符串,并在页中保存为一个隐藏域或多个隐藏域(如果存储在 ViewState 属性中的数据量超过了 MaxPageStateFieldLength 属性中的指定值)。当将页回发到服务器时,页会在页初始化阶段分析视图状态字符串,并还原页中的属性信息。也可以使用视图状态来存储值。在默认情况下,ViewState不被加密,并且发生服务器-客户端数据传输。
ViewState的关键特性有:存储于页面上,与会话且与页面相关,被序列化,默认发生服务器-客户端传输,默认不被加密。
至于在什么样的情况下ViewState不发生服务器端-客户端传输,或者被加密,我们将在后面的章节中予以讲述。
ViewState虽然不能够跨页面共享数据,但是在同一个页面里,可以用于在对同一页的多个请求之间保留值。