ASP.NET--Request和Response的区别

       在ASP.NET中,客户端的动态互动是通过Response和Request对象实现的,这两个对象起到了服务器和客户端

间的信息传播作用,其中Response对象用于接收客户端浏览器提交的数据,而Request对象的功能则是将服务端的

据发送到客户端浏览器。

       由于ASP.NET页包含对System.Web命名空间(包含HttpContext类)的默认引用(using System.Web)。Page类、

HttpRequest类和HttpResponse类关系如下图所示。当加载一个page页的时候,同时也引用了HettpRequest类和

HttpResponse类。两个类作为page的属性Request和Response存在,这样我们在page_load的方法下就可以直接使用

page的属性Request对象和Response对象 。

ASP.NET--Request和Response的区别_第1张图片

   一 Request对象

 request对象可以用于访问人任何用HTTP请求的传递的信息,包括从HTML表单的POST方法或GET方法传递的参

数、Cookie和用户认证。下面介绍几个常用的属性。

       1 属性

1)Form

      获取窗体中变量的集合。其实它就是一个容器,将网页间需要传递的信息存放在Form中,网页接收即可。当

 method的属性值为POST或GET时,所有作为请求提交的

段中的HTML控件/WEB控件单元的值的组合,每个

成员均为只读。下面用代码实现两个方法:


    

    
    

 //使用Post的方式获得Form表单
        protected void btnOK_Click(object sender, EventArgs e)
        {
            string name;
            name = Request.Form["TextBox1"];
            Response.Write(name);

//使用Get方式获得Form表单
        protected void btnOK_Click(object sender, EventArgs e)
        {
            string name;
            name = Request.QueryString ["TextBox1"];
            Response.Write(name);
        }


2)QueryString

      依附于用户请求的URL后面的名称/数值或作为请求提交的且method属性值为Get的值。关于method=“get”具体的

例子见上。Querystring检索HTTP查询字符串变量的值,HTTP查询字符串有问号后的值制定。常用于页面跳转时,

参数的传递。具体代码展示:

 protected void btnOK_Click(object sender, EventArgs e)
        {
            Response.Redirect("Vote_ShowResult.aspx?voteid=" + this.masterID);
        }

   二 Response对象

        Response对象用于系那个客户浏览器发送服务器的数据。用户可以使用该对象将服务器端的数据用HTML的格

式发送到客户端浏览器。该对象的功能与Request对象的功能相反,Request对象用于得到用户提交的数据,而

Response对象用于将服务器的数据发送到用户浏览器,这是实现网页动态效果的基础。

        1 属性

1)Buffer属性

        在asp.net 程序中,可以为页面在服务器端设置一个缓冲区。其实缓冲区就是一个存储区,可以在其释放数据之
 前容纳一段时间。设置缓冲区后,服务器端可以减少与客户端连接的次数而调高整体的相应速度,并可在满足某些
条件时撤销已经处理的结果,而不会出现响应完成一部分就停止的状况。通过Beffer属性决定打开/关闭缓存。若为false则关闭缓存,若为true则打开缓存。Buffer属性的更改必须放在HTML或脚本输出之前,因为任何内容发送到浏览器后Buffer属性值就不能再更改,否则会引起错误。
      注意:在asp.net 文件的任意地方用到Redirect方法重定向页面,必须在文件开头关闭Buffer属性,否则会报错。

2)status属性

       用来传递服务器HTTP响应的状态。可以用来处理HTTP请求后服务器返回的错误。服务器返回状态码有3位数字构成,可以根据状态码来确定服务器是如何处理HTTP请求的。在调试过程或向客户端返回有关错误时,status属性很重要,可以根据状态码来明确错误源。
另:很全的状态码    http://blog.sina.com.cn/s/blog_4ae187490100x9u7.html

3)IsClientConnected属性

        它是只读属性 ,用来指示上次调用Response.write后,客户端是否与服务器相连。该属性允许用户在客户端与服务器没有连接的情况下更多的控制。例如

         2方法

1)Write

       它是Reponse对象中最常用的方法之一,它可以把变量的值发送到客户端的当前页,它几乎和一输出所有的对象和数据。在write方法中可以嵌入任何HTML标记,只要该标记是合法的。

2)Clear

       clear用于清除缓冲区所有HTML输出,但是它只删除相应正文而不删除相应标题。在服务器上的程序产生错误时,可用clear方法来处理错误情况。
       注:clear方法仅当Response对象的Buffer属性设为True时才起作用。如果Buffer属性未设置为True,则clear方法将导致运行错误。

3)End

       End方法使服务器停止当前脚本的处理并返回当前结果。如果response对象的Buffer设为为True,则End方法立即把缓存中的内容发送到客户端并清除缓存。因此,若想取消向客户端的所有输出,可以先用clear方法清除缓存,再用End方法停止脚本的处理。

4)Redirect

       在普通网页中,可以使用超链接的方式来引导放我这跳转到另一个页面,但是这个过程需要访问者单击一个超链接才进行。response对象的redirect方法则可以自动完成页面间的跳转,而访问者几乎不会感觉出来。

 总结:

        Response对象用于接收客户端浏览器提交的数据,而Request对象的功能则是将服务端的据发送到客户端浏览器。



你可能感兴趣的:(B/S)