asp.net对象——Response、Request


百科定义:


  Request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。

  Response对象用于动态相应客户端请示,控制发送给用户的信息,并将动态生成响应。


简单理解:

  Request请求对象,包含了访问网站时发起请求的所有参数
  Response响应对象,包含了请求之后网站返回的所有响应信息。


  理解之后更重要的还是需要多多练习,熟练掌握哪些对象应该在哪些时候如何运用



Request对象常用属性表:

属性

说明

属性值

QueryString

获取HTTP查询字符串变量集合

NameValueCollection对象

Path

获取当前请求的虚拟路径

当前请求的虚拟路径

UserHostAddress

获取远程客户端的IP主机地址

远程客户端的IP地址

Browser

获取有关正在请求的客户端的浏览器功能

HttpBrowserCapabilities对象


实例展示:获取QueryString值

  在第一个页面创建一个链接,指向第二个页面,并用QueserString查询两个变量
<a href ="Request属性测试2.aspx?ID=6&Name=Wang">查看</a>
  在第二个页面接受从第一个页面传过来的变量。在asp.net后台写入
Response.Write("变量ID的值:" + Request.QueryString["ID"] + "<br>");
Response.Write("变量Name的值:" + Request.QueryString["Name"]);
  显示结果


  上面的例子可以成功的得到QueryString值。
  用类似的方法,可以获取Form,Cookies,SeverVaiables的值。调用的方法都是Request.Collection["Variable"]
  Collection包括QueryString,Form,Cookies,SeverVaiables四种集合。
  Variable为查询的关键字,这里的Collection可以省略。
  不过省略Collection后,会按照上面四种集合的先后顺序查找,降低了程序的执行效率。
  
  

              Request对象常用方法表:

方法

说明

BinaryRead

执行对当前输入流进行指定字节数的二进制读取

MapPath

当前请求将请求的URL中的虚拟路径映射到服务器上的物理路径


实例展示:获取文件的物理路径
Response.Write(Request.MapPath("Request属性测试1"));



Response对象常用属性表:

属性

说明

属性值

BufferOutput

获取或设置一个值,该值指示是否缓冲输出,并在完成处理整个页面之后将其发送

如果缓冲到了客户端的输出,则为True,否则为False。默认True

Cache

获取web页的缓存策略(过期时间、保密性、变化子句)

包含有关当前相应的缓存策略信息的HttpCachePolicy对象

Charset

获取或设置输出流的HTTP字符集

输出流的HTTP字符集

IsClientConnected

获取一个值,通过该值指示客户端是否仍连接在服务器

如果客户端当前仍在连接,则为True,否则为False


实例展示:使用缓冲区
  由于Response对象的BufferOutput属性 默认 True,所以要输出到客户端的数据都暂时 存储在缓冲区
  等到所有的事件程序,以及所有的页面对象 全部解译完毕后
  才将所有在缓冲区中的数据 送到客户端的浏览器。
  下面的例子将演示缓冲区是如何工作的。
<%
    Response.Write("缓存已清除" + "<br>");
%>
<script language="c#" runat="server">
  void Page_load(Object sender, EventArgs e)
    {
        Response.Write("缓存清除前"+"<br>");
        Response.Clear();
    }
</script>
  上述程序代码实例 首先在“Page_Load”事件中 送出“缓存清除前”这一行,此时的数据 存在缓冲区中。
  接着使用Response对象的 Clear方法将缓冲区的数据清除,所以刚刚送出的字符串已经被清除。
  然后IIS开始 读取HTML组件的部分,并将结果 送至客户端的浏览器。
  由执行结果 只出现“缓存已清除”可知,使用Clear方法之前的数据并没有出现在浏览器上,所以程序开始时是存在缓冲区内的。
   在程序的Page_load事件的最前面加入Response.BufferOutput=false"
  会发现,执行的结果为:“缓存清除前 缓存已清除”
  结果并没有因为使用clear方法而将缓冲区的数据清除,这表明数据是 直接输出的。

Response对象常用方法表:

方法

说明

Write

将指定的字符串或表达式的结果写到当前的HTTP输出

End

停止页面的执行并得到相应的结果

Clear

用来在不将缓存中的内容输出的前提下,清空当前页的缓存,仅当使用了缓存输出时,才可以利用Clear方法

Flush

将缓存中的内容立即显示出来,该方法有一点和Clear方法一样,它在脚本前面没有将Buffer属性设置为True时会出错,和End方法不同的是,该方法调用后,该页面可继续执行

Redirect

使浏览器立即重定向到程序指定的URL


实例展示:使用Response.End方法调试程序
  End方法可以停止当前页面的执行,基于这个原因,可以结合Response.write方法输出当前页面上的某个变量、数组值

<form id="form1" method="post" runat="server">
    <div>
        输入一个数:<asp:TextBox ID="txtVar" runat="server"></asp:TextBox>
        <asp:Button ID="btnSubmit" runat="server" Text="计算该值的平方值" OnClick="btnSubmit_Click" />
    </div>
</form>
<script language="C#" runat="server">
    void btnSubmit_Click(object sender, EventArgs e)
    {
        int N = int.Parse(Request.Form["txtVar"].ToString());
        Response.Write("N=" + N + "<br>");
        Response.Write("该值得平方值是:" + N * N);
    }
</script>

  显示结果
  

  在上面的代码中的两个write之间加入Response.End()

  这时,结果只会显示N=4

       利用此方法可在程序中进行调试。


      我的生活只讲给你听



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值