WebForm内置对象:Session、Cookie,登录和状态保持
1、Request -获取请求对象
string s =Request["key"];
2、Response - 响应请求对象
Response.Redirect("url"); 服务端重定向,在当前页面跳转。
Response.Write("string"); 将此字符串输出到页面的最顶端,里面可以放Js。
3、Session
存贮在服务端,占用服务器内存
很好用,速度很快
不要滥用,容易溢出
生命周期:20分钟,每一次新的请求都会刷新这个时间
浏览器一旦关闭,那么会断开此条Session的连接
Session里面能存储Object类型
(1)、传值:
string s=TextBox1.Text;
Session["aaa"]=s;
Response.Redirect("url");
(2)、取值:
Label1.Text= Session["aaa"].Tostring();
(3)、如果报错:未将对象引用设置到对象的实例。
存贮在服务端,占用服务器内存 。浏览器一旦关闭,那么会断开此条Session的连接
处理办法:在取值时进行判断
if(Session["aaa"]!=null)
{
Label1.Text= Session["aaa"].Tostring();
}
(4)、如果传一个对象的话:
赋值:Users u= new Users();
u.UserName="lisi";
u.PassWord="123";
Session["user"]=u;
Response.Redirect("url");
取值:Users uu=Session["user"] as Users;
Label1.Text= uu.UserName+uu.PassWord;
(5)、在Session取值结束以后可以直接把Session释放。
Session["aaa"]=null;
4、Cookie 传值只能传递string类型。
传值:string s =TextBox1.Text;
Response.Cookies["aa"].Value=s;
Response.Cookies["aa"].Expires=DateTime.Now.AddDays(3); 设置Cookies3天后到期。
Response.Redirect("url");
取值:string ss=Request.Cookies["aa"].Value;
Label1.Text=ss;
如果报错:未将对象引用设置到对象的实例。
在取值时进行判断
if(Request.Cookies["aa"]!=null)
{
string ss=Request.Cookies["aa"].Value;
Label1.Text=ss;
}
Cookies与Session基本一致,
不一样的地方:Cookies是存储在客户端的,并且只能传递string类型。
Session很安全,但是消耗服务器内存
Cookies,不消耗服务器内存,存在客户端上,但是有可能被访问
赋值:
Response.Cookies["aa"].Value = s;
取值:
string ss = Request.Cookies["aa"].Value;
5、登录和状态保持。
在登录界面登录按钮的点击事件中:
在主界面进行取值:
主界面的退出登录按钮: