一、URL传值
URL传值是利用跳转地址直接加变量定义内容
格式:跳转地址?任意变量=传的值--?=之间不能有空格
多条数据传值 在地址栏继续拼接&key=value
void Button1_Click(object sender, EventArgs e)
{
string path = "Default2.aspx?aaa=" + TextBox1.Text + "&bbb=" + TextBox2.Text;
Response.Redirect(path);}
接收值得界面:
Label1.Text = Request["aaa"];
Label1.Text += "," + Request["bbb"];
二、Session传值
Session简介:
在服务器中为每个用户浏览器创建的一个会话对象(session对象)。
注意:1、一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。
2、Session存放时间20min
3、浏览器关闭断开此条链接,不能再次访问
4、Session里面存储Object类型,可存储对象
Session传值:
1.赋值:
protected void Page_Load(object sender, EventArgs e) { //session赋值 string s="tr"; Session["first"] = s; //页面传输 Response.Redirect("Main.aspx"); }
2、session取值:
protected void Page_Load(object sender, EventArgs e) { //变量接收 string a = Session["first"].ToString(); //存放到控件 Label1.Text = a; }
问题:关闭浏览器再次输入跳转地址报错
解决方案:在取值时先进行if判断 --session["key"]!=null;
三、Cookie传值
1、赋值:
protected void Page_Load(object sender, EventArgs e) { //session赋值 string s="tr"; Response.Cookies["first"].Value = s; //增长保存时常 Response.Cookies["first"].Expires=DateTime.Now.AddDays(3); //页面传输 Response.Redirect("Main.aspx"); }
2、取值:
protected void Page_Load(object sender, EventArgs e) { //防报错判断 if(Request.Cookies["first"]!=null) {//变量接收 string a =Request.Cookies ["first"].Value; //存放到控件 Label1.Text = a; } }
cookie 和session 的区别:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5、cookie关闭浏览器打开同一浏览器地址有值,session无值,cookie在不同浏览器同一地址无值