ASP.NET 内置对象

内置对象:
1、Response - 响应请求对象
Response.Redirect("Default2.aspx"); //页面重定向到Default2.aspx
Response.Write("<script>window.open('Default2.aspx');</script>");//在页面中写入一句话并显示在页面上,这里写入了一个js方法,里面写入了一句打开新页面的语句,同样执行打开新页面,也就是Response.Write,执行后面括号里写入的语句

 

2、Request - 接收请求对象
Request["键"] - 放在等号右边,用来取值
服务器控 件是根据ID来作为键
表单元素 是根据name值来作为键


QueryString - 页面地址拼接数据
如:Default2.aspx?aaa=呵呵&bbb=嘿嘿&ccc=hoho

1.后台Response.Redirect("Default2.aspx?key="+值);

例:创建两个Web窗体,在第一个窗体中放一个文本框和一个按钮,第二个窗体中Response.Write写入一个Request["name"]接收请求对象

在第一个窗体的文本框中输入东西,点击按钮,页面重定向到第二个窗口,并且将文本框中输入的内容赋值给名为name的接收请求对象

窗口2的后台:

Response.Write(Request["name"]);//在页面中写一个Request接收请求对象,接收传过来的值,name是给他起得名字

也可以用其他的控件来接收Request["name"]中所赋的值,比如将Request["name"]里的值给一个文本框,添加文本框,后台Textbox1.Text=Request["name"];

窗口1的后台:

//页面中按钮点击,执行页面重定向,并且将文本框中的信息通过页面地址拼接数据一起传到定向页面
void Button1_Click(object sender, EventArgs e)
{
      Response.Redirect("Default2.aspx?name=" + TextBox1.Text);
}


2.Form表单会通过submit按钮自动提交数据,将数据提交给action设置的页面中去,method=“get”方式来提交

method 提交方式
action 目标页面  

在From的括号里写  method=“get”  action="页面名字.aspx"

get提交方式:会在地址栏窗口aspx?后面拼接一些系统生成的代码

提交窗口不需要写后台,写一个文本框和一个按钮,直接在Form中写提交方法和重定向页面,点击submit按钮直接将文本框中的内容传到新页面,新页面后台通过id来获取传来的值

窗口1:

<form id="form1" method="get" action="Default2.aspx" runat="server">
    <div>
        <asp:TextBox ID="user" runat="server"></asp:TextBox><br />  /*ID为user*/
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </div>
    </form>

窗口2:将文本框的Text为通过窗口1的ID接收的值:TextBox1.Text = Request["user"];

 

post提交方式 - 直接数据提交方式
除了不在地址栏拼接数据,其它的没有任何区别

就是将method="get" 的提交方式改为method="post" 提交,这种方法地址栏aspx?后面没有拼接数据

 

 

3、Session
就是一个临时保存数据的对象,保存在服务器
可以理解为容器,变量

 

可以存Object类型,一个连接为独立的一组,默认生命周期为20分钟,如果在这20分钟内重新进行数据提交或是页面刷新,都会重置这20分钟倒计时时间。

 

如果Session["键"]里面没有内容的时候,使用时会抛出异常,所以一定要在使用session的值之前判断此是否为空。

 

注意:Session不要过度使用,因为放的东西太大了,用户连接多了就会导致内存溢出,服务器崩溃;也不要不使用,会造成资源浪费,因为内存中的数据是最快速的;

例:创建三个Web窗体,第一个为登录页面,两个文本框账号和密码,通过Session将账号密码存放,点击按钮,将两个文本框中的值在第二个窗体显示,第二个窗体设置一个按钮,点击打开第三个窗体,在第三个窗体中显示Session中的值

第一个窗体:

前端:

 

<body>
    <form id="form1"  runat="server">
        <h1>&nbsp;</h1>
    <div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br /><br />
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br /><br />
        <asp:Button ID="Button1" runat="server" Text="登 录" />
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
    </div>
    </form>
</body>

 

后端:

void Button1_Click(object sender, EventArgs e)
    {
        //将文本框中的值放进Session中,在新开的页面接收这个Session中的值
        if (TextBox1.Text == "Admin" && TextBox2.Text == "123")
        {
            Session["code"] = TextBox1.Text;
            Session["pwd"] = TextBox2.Text;
            Response.Redirect("Default2.aspx");
        }
        else 
        {
            Label1.Text = "用户名密码有误!";
        }
    }

第二个窗体:

前端:

<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
        <asp:Button ID="Button1" runat="server" Text="注 册" />
    </div>
    </form>
</body>

后端:

protected void Page_Load(object sender, EventArgs e)
    {
        Button1.Click += Button1_Click;
        if (Session["code"] != null&&Session["pwd"]!=null)//要进行判断是否为空
        {
            Label1.Text = "您的账号是:" + Session["code"].ToString();
            Label2.Text = "您的密码是:" + Session["pwd"].ToString();
        }
        else 
        {
            Response.Redirect("Default1.aspx");
        }
        //此页面如果不关闭。默认20分钟后此页面传过来的值则会无效
    }

    void Button1_Click(object sender, EventArgs e)
    {
        Response.Redirect("Default3.aspx");
    }

第三个窗体:

前端:

<body>
    <form id="form1" runat="server">
    <h1>注册成功</h1>
        账号:<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br />
        密码:<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
    </form>
</body>

后端:

protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["code"] != null && Session["pwd"] != null)
        {
            Label1.Text = Session["code"].ToString();
            Label2.Text = Session["pwd"].ToString();
        }
        else 
        {
            Response.Redirect("Default1.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

例:创建两个窗体,一个作为登录窗体,两个文本框和一个单选框及一个按钮,单选框用来记录Cookie的保存时间,另一个窗体将Cookie中的值显示,添加一个清除Cookie的按钮

窗体一:

前端:

 

<body>
    <form id="form1" runat="server">
    <h1>用户登录</h1>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br /><br />
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br /><br />
        <asp:Button ID="Button1" runat="server" Text="登 录" />
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
        <br /><br />
        <asp:CheckBox ID="CheckBox1" runat="server" Text="3天自动登录" />
    </form>
</body>

 

后端:

 

void Button1_Click(object sender, EventArgs e)
    {
        if (TextBox1.Text == "马志杰" && TextBox2.Text == "123")
        {
            Response.Cookies["user"].Value = TextBox1.Text;
            if (CheckBox1.Checked)//如果单选框是选中的 
            {
                //这个cookie三天到期,也就是保存三天
                Response.Cookies["user"].Expires = DateTime.Now.AddDays(3);
            }
            Response.Redirect("Default6.aspx");
        }
        else 
        {
            Label1.Text = "账号密码有误!";
        }
        
    }

 

窗体二:

前端:

 

<body>
    <form id="form1" runat="server">
    <h1>欢迎界面</h1>
        <asp:Label ID="Label1" runat="server" Text="Label">
        </asp:Label><asp:Button ID="Button1" runat="server" Text="退 出" />
    </form>
</body>

 

后端:

 

 

 protected void Page_Load(object sender, EventArgs e)
    {
        Button1.Click += Button1_Click;
        if (Request.Cookies["user"] != null)
        {
            Label1.Text = Request.Cookies["user"].Value + "小盆友,不欢迎你回来!";
        }
        else 
        {
            Response.Redirect("Default5.aspx");
        }
    }

    void Button1_Click(object sender, EventArgs e)
    {
        Response.Cookies["user"].Expires = DateTime.Now.AddDays(-2);
        Response.Redirect("Default5.aspx");
    }

 

 

 

5、Appliction
临时保存数据的一个对象,保存在服务器端
全局变量
所有人访问的都是同一个对象
赋值:
Application["键"] = 值;
取值:
Application.Get("键")

 

posted @ 2016-07-19 01:23  小飛  阅读(175)  评论(0编辑  收藏  举报