Web内置对象 跨页面传值

内置对象:

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虽然不能够跨页面共享数据,但是在同一个页面里,可以用于在对同一页的多个请求之间保留值。

原文地址:https://www.cnblogs.com/fuze/p/6245076.html