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("键")

时间: 2024-12-24 01:03:53

ASP.NET 内置对象的相关文章

asp.net内置对象session和cookie

1.各个机器的session对象不同,不同浏览器之间不通用(换个浏览器,是个新的session). 2.session状态对象起始于网页打开,终止于网页关闭,生命周期有限. 3.关闭浏览器/超时的情况下,session对象即被销毁,不要放太多/太大的对象在session. 4.Web应用程序在传统意义上无状态,需要使用内置对象进行客户端状态的保存. 5.session对象和Application对象存储在服务端,cookie对象存储在客户端. 6.session对象适用于安全性相比之下较高的场合

asp.net内置对象Server

1.Server是Context的一个属性,是HttpServerUtility类的一个对象. 2.Server.HtmlDecode(),Server.HtmlEncode(),Server.UrlEncode(),Server.UrlDecode()是对HttpUtility类中相应方法的一个代理调用.有的时候很难拿到Server对象,使用HttpUtility. 3.Server.Transfer(path)内部重定向请求,Server.Transfer("hellow.aspx"

asp.net 内置对象Request和Response

Request 1.Request.AppRelativeCurrentExecutionFilePath,获取当前执行请求相对于应用根目录的虚拟路径,以~开头,比如"~Handler.ashx". 2.Request.PhysicalApplicationPath,获取当前应用的物理路径,比如D:\我的文档\VisualStudio 2012\WebSites\WebSite\ 3.Request.PhysicalPath,获取当前请求的物理路径.比如D:\我的文档\VisualSt

asp.net内置对象

转:http://www.cnblogs.com/MyBeN/archive/2011/03/23/1992591.html (1)简述ASP.NET内置对象. 答:ASP.NET提供了内置对象有Page.Request.Response.Application.Session.Server.Mail和Cookies.这些对象使用户更容易收集通过浏览器请求发送的信息.响应浏览器以及存储用户信息,以实现其他特定的状态管理和页面信息的传递. (2)简述Response对象. 答:Response对象

重温ASP.NET内置对象之Request

Active ServerPages 提供内建对象,这些对象使用户更容易收集通过浏览器请求发送的信息.响应浏览器以及存储用户信息.ASP.NET 包含一系列类,用于封装这些上下文信息. ASP.NET主要包含六大类: 1.      Response提供对当前页的输出流的访问. 2.      Request提供对当前页请求的访问,其中包括请求标题.Cookie.客户端证书.查询字符串等. 3.      Server对象的属性反映了Web服务器的各种信息,它提供了服务器可以提供的各种服务. 4

2017-5-22 ASP六大 内置对象

ASP内置对象:提供内建对象,这些对象使用户更容易收集通过浏览器请 求发送的信息.响应浏览器以及存储用户信息(如用户首选项). 1.Request  --- 获取请求对象 获取通过地址栏传值过来的对象 string aaa = Request["key"];  key必须和传值的对象名称相同 2.Response  ---  响应请求对象 Response.Redirect("新打开的网址?aa=key");/ Response.Redirect("新打开

ASP.NET内置对象(详细)

今天跑到图书馆看书,很多东西忘了,以至有时候求职面试时说不出来,便有空来看看书 以下是从<C#与ASP.NET程序设计教程> 王振武 著 一书上看到的,写的挺详细的,有时候会用到,便搬到这边来,共分享,学习:我只是知识的搬运工而已,哇咔咔! 内置对象名称 功能说明 Page 对ASP.NET页面的内容进行处理 Requset 获取客户端及服务端的相关信息 Response 将HTTP相关数据及其有关信息发送到客户端 Server 提供一系列与WEB相关的程序 Session 在服务器的内存中储

【ASP.NET 基础】ASP.NET内置对象

准确地说,asp.net 并没有内置对象这一说,jsp 里确实把 request.response 这些当作 jsp 的内置对象,这里只不过是借用了一下 jsp 的说法而已.在 Web 中处于中心的是 Web 服务器,用来处理客户端的 HTTP 请求.由于 HTTP 是一种无状态的协议,也就是它并不记得上一次谁请求过它,不会主动去询问客户端,只有当客户端主动请求之后,服务器才会响应. 1.[Request] Request封装了客户端请求信息.Request的常见属性如下:  属性名  值类型

ASP.NET内置对象二

(1)Respose对象 利用Response对象输出文字信息: protected void Page_Load(object sender, EventArgs e){ string message = "您好,欢迎光临本网站!"; Response.Write(message); } 利用Response对象实现网页跳转: protected void Page_Load(object sender, EventArgs e) { Response.Redirect("