session:全局变量组
存放位置:存放在服务器上
用法:相当于一个变量的使用方法,存在于服务器内存上,抓取速度快
主界面:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Button1.Click += Button1_Click; } void Button1_Click(object sender, EventArgs e) { string s = TextBox1.Text; Session["a"] = s; } }
副界面:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class Default2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if(Session["a"]!=null) Label1.Text = Session["a"].ToString(); } }
作用:只要里面有内容,那么这个网站中所有的C#端都能访问到这个变量
优点:安全,速度快,全局访问无限制
缺点:消耗服务器内存资源
弊端:session占用服务器资源,每一个访问对象都会创建session,如果访问对象过多,会占用过多服务器资源,造成服务器崩溃。
Session生命周期:20分钟
注意:1、不要存大量数据在Session里
2、临时Session取完无用后记得 = null清空它,释放内存资源
cookie-全局变量组
存放位置:客户端电脑硬盘上
作用:保存数据信息,只能保存字符串,全局访问
用法:
赋值:用response
string s = TextBox1.Text; Response.Cookies["b"].Value = s;
取值:用request
Label1.Text = Request.Cookies["b"].Value;
定义使用期限:response
Response.Cookies["username"].Expires = DateTime.Now.AddDays(3);//三天期限
跳转页面地址栏不转变的方法:server.transfer
Server.Transfer("Default2.aspx?id=1111111111111111");
用法简例:
主界面:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Button1.Click += Button1_Click; } void Button1_Click(object sender, EventArgs e) { string s = TextBox1.Text; //Session["aa"] = s; if (s == "zhangke" && TextBox2.Text == "1234") { Response.Cookies["username"].Value = s; if (CheckBox1.Checked) { Response.Cookies["username"].Expires = DateTime.Now.AddDays(3);//三天期限 } //Response.Redirect("Default2.aspx"); Server.Transfer("Default2.aspx?id=1111111111111111"); } else Response.Write("用户名密码错误!"); } }
副界面:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class Default2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (Request.Cookies["username"] != null) Label1.Text = Request.Cookies["username"].Value; else Response.Redirect("Default.aspx"); Label1.Text += "," + Request["id"]; Button1.Click += Button1_Click; } void Button1_Click(object sender, EventArgs e) { Response.Cookies["username"].Expires = DateTime.Now.AddDays(-10); Response.Redirect("Default.aspx"); } }
会话Cookie消失的办法:
1、浏览器一关,此次访问一中断
2、没有任何新的提交,20分钟过期
3、手动清楚浏览器Cookie
持久Cookie消失的办法:
1、代码设置过期
2、手动清楚浏览器Cookie