您的位置:首页 > 编程语言 > ASP

asp.net对象——Response、Request

2016-07-17 23:26 369 查看
百科定义:

  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

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

      我的生活只讲给你听
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: