ASP.NET--Request和Response的區別

來源:互聯網
上載者:User

       在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對象 。


   一 Request對象

 request對象可以用於訪問人任何用HTTP請求的傳遞的資訊,包括從HTML表單的POST方法或GET方法傳遞的參

數、Cookie和使用者認證。下面介紹幾個常用的屬性。        1 屬性 1)Form

      擷取表單中變數的集合。其實它就是一個容器,將網頁間需要傳遞的資訊存放在Form中,網頁接收即可。當

 method的屬性值為POST或GET時,所有作為請求提交的<form>段中的HTML控制項/WEB控制項單元的值的組合,每個

成員均為唯讀。下面用代碼實現兩個方法:

<!--使用post方法-->    <form id="form2" runat="server" method="post">    <!--使用get方法-->    <form id="form1" runat="server" method="get">

 //使用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對象的功能則是將服務端的資料發送到用戶端瀏覽器。


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.