web窗体的内置对象
内置对象:
1、Response - 响应请求对象
Response.Redirect("Default2.aspx"); //重定向
Response.Write("<script>window.open('Default2.aspx');</script>"); ---可以书写任何东西,直接输出出去
2、Request - 接收请求对象
Request["键"] - 放在等号右边,用来取值
服务器控件 是根据ID来作为键
表单元素 是根据name值来作为键
QueryString - 页面地址拼接数据
如:Default2.aspx?aaa=呵呵&bbb=嘿嘿&ccc=hoho
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) { Response.Write(Request["aaa"]); } }
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class Default1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Button1.Click += Button1_Click; } void Button1_Click(object sender, EventArgs e) { Response.Redirect("Default2.aspx?aaa="+TextBox1.Text); //Response.Write("呵呵"); } }
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) { TextBox1.Text=Request["aaa"]; } }
1.后台Response.Redirect("Default2.aspx?key="+值);
2.Form表单会通过submit按钮自动提交数据,将数据提交给action设置的页面中去,method=“get”方式来提交
method 提交方式
action 目标页面
get提交方式
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default1.aspx.cs" Inherits="Default1" EnableViewStateMac="false" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" method="get" action="Default2.aspx" runat="server"> <asp:TextBox ID="User" runat="server"></asp:TextBox><br /> <asp:TextBox ID="Pwd" runat="server"></asp:TextBox><br /> <asp:Button ID="Button1" runat="server" Text="Button" /> </form> </body> </html>
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class Default1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" EnableViewStateMac="false" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </form> </body> </html>
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) { TextBox1.Text=Request["User"]+"+"+Request["Pwd"]; } }
post提交方式 - 直接数据提交方式
除了不在地址栏拼接数据,其它的没有任何区别
===================================================================
3、Session
就是一个临时保存数据的对象,保存在服务器
可以理解为容器,变量
可以存Object类型,一个连接为独立的一组,默认生命周期为20分钟,如果在这20分钟内重新进行数据提交或是页面刷新,都会重置这20分钟倒计时时间。
如果Session["键"]里面没有内容的时候,使用时会抛出异常,所以一定要在使用session的值之前判断此是否为空。
注意:Session不要过度使用,因为放的东西太大了,用户连接多了就会导致内存溢出,服务器崩溃;也不要不使用,会造成资源浪费,因为内存中的数据是最快速的;
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <form id="form1" runat="server"> 用户名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br /> 密码:<asp:TextBox ID="TextBox2" runat="server" TextMode="Password"></asp:TextBox><br /> <asp:Button ID="Button1" runat="server" Text="登录" /><asp:Label ID="Label1" runat="server" Text=""></asp:Label> </form> </html>
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class Default3 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Button1.Click += Button1_Click; } void Button1_Click(object sender, EventArgs e) { if(TextBox1.Text.Trim()=="zhangsan"&&TextBox2.Text.Trim()=="123") { Session["username"] = TextBox1.Text; Response.Redirect("Default4.aspx"); } else { Label1.Text = "用户名密码错误"; } } }
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default4.aspx.cs" Inherits="Default4" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> 这是session的主页面<br /> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> </form> </body> </html>
using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class Default4 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (Session["username"] != null) { Label1.Text = Session["username"] + ",欢迎登录!"; } else { Response.Redirect("Default3.aspx"); } } }
4、cookie
临时保存数据的一个对象,保存在客户端
不要保存很重要的信息,因为会随时被用户删掉,有些程序会自动抓取用户电脑上的cookie信息,如果密码保存进去了,就会被抓取到
赋值:使用Response对象
1、Response.Cookies.Add(new HttpCookie("键", 值));
2、Response.Cookies["键"].Value = 值;
3、制作持久Cookie :
Response.Cookies["键"].Expires = DateTime.Now.AddDays(7);//设置7天后过期
取值:使用Request对象
Request.Cookies["UserName"].Value
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx.cs" Inherits="Default5" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> 用户名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br /> 密码:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br /> <asp:Button ID="Button1" runat="server" Text="登录" /><br /> <asp:CheckBox ID="CheckBox1" runat="server" Text="7天自动登录"/> <asp:Label ID="Label1" runat="server" Text=""></asp:Label> </form> </body> </html>
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class Default5 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Button1.Click += Button1_Click; } void Button1_Click(object sender, EventArgs e) { if(TextBox1.Text=="zhangsan"&&TextBox2.Text=="123") { Response.Cookies["username"].Value = TextBox1.Text; Response.Redirect("Default6.aspx"); if(CheckBox1.Checked) { Response.Cookies["username"].Expires = DateTime.Now.AddDays(7); } } else { Label1.Text = "用户名密码错误!"; } } }
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default6.aspx.cs" Inherits="Default6" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> 这是cookie的主页面<br /> <asp:Label ID="Label1" runat="server" Text=""></asp:Label><br /> <asp:Button ID="Button1" runat="server" Text="退出" /> </form> </body> </html>
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class Default6 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Button1.Click += Button1_Click; if (Request.Cookies["username"].Value!=null) { Label1.Text = Request.Cookies["username"].Value + ",欢迎登录"; } else { Response.Redirect("Default5.aspx"); } } void Button1_Click(object sender, EventArgs e) { Response.Cookies["username"].Expires = DateTime.Now.AddDays(-2); Response.Redirect("Default5.aspx"); } }
5、Appliction
临时保存数据的一个对象,保存在服务器端
全局变量
所有人访问的都是同一个对象
赋值:
Application["键"] = 值;
取值:
Application.Get("键")