(一)内置对象
1.Request --- 获取请求对象
获取通过地址栏传值过来的对象
string aaa = Request["key"]; key必须和传值的对象名称相同
2.Response --- 响应请求对象
Response.Redirect("新打开的网址?aa=key");/ Response.Redirect("新打开的网址?aa="+key)
地址栏传值/URL传值/QueryString传值优势:不占用服务器内存,保密性查,传递的长度有限
?aa=key 要传递的对象 只能在原有页面上进行刷新,无法打开新的选项卡
Response.Write("string"); --- 将字符串输出到页面的最顶部,string可以书写js代码,打开新的网址
3.Session
优势:1.存贮在服务端,占用服务器内存2.传输速度快3.不要滥用,容易溢出
生命周期:20分钟,每一次的请求都会刷新这个时间,如果浏览器关闭,就会断开此次Session的链接
Session可以存贮Object类型
Session页面传值:
string aa = TextBox1.Text; Session["zz"] = aa; Response.Redirect("bb.aspx");
接收的页面:
Label1.Text = Session["zz"].ToString();
传递实例化的对象:
protected void Page_Load(object sender, EventArgs e) { Button1.Click += Button1_Click; } void Button1_Click(object sender, EventArgs e) { Users u = new Users(); u.username = "小明"; u.sex = "男"; Session["zz"] = u; Response.Redirect("bb.aspx"); }
接收的页面:
Users u = new Users(); u = Session["zz"] as Users; Label1.Text = u.username + u.sex;
4.Cookie
cookie和session一模一样,不一样的地方是:Cookies是存储在客户端的
两者的优缺点:
Session很安全,但是消耗服务器内存,Cookies,不消耗服务器内存,存在客户端上,但是有可能被访问
cookie判断为不为空:
if(Request.Cookies["aa"]!=null){} --- 直接判断接收的值是不是为空
设置持久cookie:
String u = TextBox1.Text;
Response.Cookies["aa"].Value =u;
Response.Cookies["aa"].Expires = DateTime.Now.AddDays(3);---- 设置cooki持续的时间3天,不同的浏览器都有自己的cooki,与保存的时间无关,只是在当前浏览器下保存
页面传值:
protected void Page_Load(object sender, EventArgs e) { Button1.Click += Button1_Click; } void Button1_Click(object sender, EventArgs e) { string u = TextBox1.Text; Response.Cookies["zz"].Value = u; Response.Redirect("bb.aspx"); }
接收的页面:
protected void Page_Load(object sender, EventArgs e) { string u = Request.Cookies["zz"].Value; Label1.Text = u; }