2011年11月25日 星期五

ASP.net-Response物件的用途

[一]
Response物件的用途 :用來決定何時或如何將輸出由伺服器端傳送至用戶端

●公用屬性:
•Buffer:取得或設定數值,指示是否要緩衝輸出並在整個回應處理完成之後將它送出。
•BufferOutput:取得或設定數值,指示是否要緩衝輸出並在整個網頁處理完成之後送出。
•Cache :取得 Web 網頁的快取原則 (到期時間、私密性、Vary 子句)。
•CacheControl:將 Cache-Control HTTP 標頭設定為 Public 或 Private。
•Charset:取得或設定輸出資料流的 HTTP 字元集。
•ContentEncoding:取得或設定輸出資料流的 HTTP 字元集。
•ContentType:取得或設定輸出資料流的 HTTP MIME 類型。
•Cookies:取得回應 Cookie 集合。
•Expires:取得或設定瀏覽器上快取網頁到期以前的分鐘數。如果使用者在它到期之前返回相同網頁,會顯示快取的版本。 Expires 是提供來與 ASP 先前版本相容。
•ExpiresAbsolute:取得或設定快取資訊從快取被移除的絕對日期和時間。 ExpiresAbsolut提供來與 ASP 先前版本相容。
•Filter:取得或設定用來在傳輸之前修改 HTTP 實體 (Entity) 主體的包裝篩選物件。 
•IsClientConnected:取得數值,指示用戶端是否仍然與伺服器連接著。
•Output:允許文字輸出至連出 HTTP 回應資料流。
•OutoputStream:允許二進位輸出至連出 HTTP 內容主體。
•Status:設定傳回至用戶端的狀態行。
•StatusCode:取得或設定傳回至用戶端的輸出之 HTTP 狀態碼。
•StatusDescription:取得或設定傳回至用戶端的輸出之 HTTP 狀態字串。
•SuppressContent:取得或設定數值,指示是否送出 HTTP 內容至用戶端。

●公用方法
•AddCacheItemDependencies:讓快取項目的有效性取決於快取中的其他項目。
•AddCacheItemDependency:讓快取項目的有效性取決於快取中的另一個項目。
•AddFileDependencies :將檔案名稱群組加入目前回應所依存的檔案名稱的集合。
•AddFileDependency:將單一檔案名稱加入目前回應所依存的檔案名稱的集合。
•AddHeader:將 HTTP標頭加入輸出資料流。提供來與 ASP 先前版本相容。
•AppendHeader:將 HTTP 標頭加入輸出資料流。
•AppendToLog :將自訂記錄資訊加入 IIS 記錄檔。
•ApplyAppPathModifier:將工作階段 ID 加入虛擬路徑,並傳回組合路徑。
•BinaryWrite:將二進位字元的字串寫入 HTTP 輸出資料流。
•Clear :從緩衝區資料流清除所有內容輸出。
•ClearContent:從緩衝區資料流清除所有內容輸出。
•ClearHeaders :從緩衝區資料流清除所有標頭。
•Close :關閉與用戶端的通訊端連接。
•End :將目前所有受緩衝的輸出傳送到用戶端、停止網頁的執行,並引發 Application_EndRequest 事件。
•Equals:多載。 判斷兩個 Object 執行個體是否相等。
•Flush:送出所有目前正在緩衝的輸出到用戶端。
•GetHashCode:作為特定型別的雜湊函式,適用於雜湊演算法和資料結構中,例如雜湊表。
•GetType:取得目前執行個體的 Type 。
•Pics:附加 PICS-Label HTTP 標頭至輸出資料流。
•Redirect:多載。 重新導向用戶端至新的 URL。
•RemoveOutputCacheItem :靜態方法以指定路徑從快取移除快取項目。
•ToString:傳回 String ,表示目前的 Object 。
•Write:多載。 將資訊寫入 HTTP 輸出內容資料流。
•WriteFile:多載。 將指定檔案直接寫入 HTTP 內容輸出資料流。

[二]
將輸出傳送至用戶端:使用Response.Write()方法在瀏覽器顯示訊息時,

  請注意下列事項:



●範例:請試寫下列ASP.NET網頁,利用 response.write()來完成

[HTML]檢視



程式碼宣告區塊



程式執行結果




[三]
將資料加入站台活動記錄:如果啟用伺服器的站台活動記錄功能,就可以利用Response.AppendToLog()方法,將資料加入站台活動記錄。

啟用Web伺服器的站台活動記錄功能的步驟如下:
1.在[開始] \ [程式集] \ [系統管理程式] \ [Internet Information Services] ,開啟 [Internet Information Services]MMC, 在您的Web網站圖示中 [預設的網站] 按一下滑鼠鍵,然後從快顯功能表中選擇 [內容] 。



2.選取 [Web站台]標籤,核取下方的 [啟用記錄] 選項,接著在[使用中的日誌格式] 欄位選擇一種記錄檔格式,共有三重格式可選擇,但只有 [Microsoft IIS Log File Format]和[NCSA Common Log File Format]兩種記錄檔會記錄您自行加入站台活動記錄,所以請從兩者中選擇一種,按下 [確定]。



我們用Response.AppedToLog()方法在站台活動記錄中加入"這是我的站台活動記錄"利用記事本撰寫下列程式:



Windows 2000的使用者請到C:\Winnt\System32\Logfiles\W3SVC1\
找尋ncyydd的檔案,yy為西元末 2 碼,dd 為今天日期,譬如:2003/4/6執行這個網頁,那就會有一個nc030406的記錄檔,請開啟,就可以看到如下記錄:




[四]
緩衝處理:除了立即將輸出傳送至瀏覽端之外,也可以啟用緩衝處理,將輸出暫時存放在緩衝區,等待程式執行完或接收到特定指令再將輸出傳送至瀏覽器端。

宣告語法:
Response.BufferOutput = True
不做緩衝處理的語法:
Response.BufferOutput = False

●Response物件另外提供了下列三個方法處理緩衝區裡的資料:

•Response.ClearContent():清除存放塹緩衝區尚未傳送至用戶端的輸出。
•Response.Flush():把存放在在緩衝區的輸出傳送至用戶端並清除緩衝區。
•Response.ClearHeaders():清除所有存放在緩衝區的HTTP標頭
我們利用下列兩個程式碼來為各位介紹:
●範例 1:程式碼宣告區塊



程式執行結果



●範例 2:

程式碼宣告區塊



程式執行結果



*表二的Response.Write("hi")和Respnse.Write("Kitty")敘述會分別將字串"hi","Kitty"放入緩衝區,待程式執行完畢之後,再將緩衝區裡的資料傳送至瀏覽器,故得到 "hiKitty" 的結果,
 而表一在Response.Write("hi")和Respnse.Write("Kitty")之間加入了Response.ClearContent,使得原來放在緩衝區裡的字串"Hello"裡清除掉。

●另一寫法:程式碼宣告區塊



程式執行結果




[五]

●根據定義用戶端狀態管理有下列四種方式:
•檢視狀態(viewstate):Web Form網頁具有檢視狀態功能,所有控制項均有EnableViewState屬性(預設為True),當EnableViewState屬性的值為True時,表示啟動檢視狀態功能,檢視狀態用來維持網頁本身的狀態,ASP.NET網頁在將資料傳回伺服器後會重新載入自身網頁,檢視狀態可以用來維持網頁的狀態,讓重新載入的網頁保留載入前的資料。

•隱藏欄位(hidden field):隱藏欄位為標準的HTML標籤,隱藏欄位不會在網頁上顯示出來,但在將資料傳回伺服器時,隱藏欄位的內容會一併傳回,我們可以根據隱藏欄位傳回的內容做適當的處理。
如:<Input Type="Hidden" Name="..." Value="...">

•查詢字串(query string):查詣字串可以用來將一個網頁的狀態傳遞給另一個網頁。
如:http://www.microsoft.com/product.aspx?category=office&amp;id=3
意義:開啟http://www.microsoft.com/ 網站的product.aspx網頁,並將變數category及變數id傳遞給product.aspx網頁,其變數值分別為office和3,網址與查詢字串之間以 ? 符號隔開,而變數與變數之間以 & 符號隔開。

•Cookie物件:Cookie物件是;在瀏覽者造訪某些網站時,Web伺服器在用戶端所寫入的一些小檔案,它的用途是記錄瀏覽者個人資訊,瀏覽器類型,何時造訪該網站,從事過哪些活動等,等瀏覽者下次再度造訪該網站時,只要查詢Cookie物件的記錄就會認得瀏覽者了。

●根據定義伺服端狀態管理有下列三種方式:
•Application物件:Application物件的用途是記錄整個網站的資訊,例如上站人數,線上名單,意見調查或線上投票統計等。舉例來說,由於ASP,NET網頁中的變數在程式重新執行之前會回歸為初始值,無法記錄網站被重新拜訪時就會回歸為初始值,根本無法進行統計,此時,我們必須使用Application物件來記錄計數器變數在上次執行完畢時的值,才能進行累計。

•Session物件:Session物件的用途也是錄用戶端的變數,但和Application物件記錄的是所有用戶端共用的變數,而Session物件記錄的則是個別用戶端專用的變數。舉例來說,假設目前有5位使用者連線到網站,那麼這五位使用者除了共用同一個Application物件之外,他們每一位還各自擁有一個Session物件,我們可以利用Session物件記錄每位使用者個別的資訊,例如姓名,造訪網站的次數,已訂購的貨物,送貨地址,持卡資訊等。

•資料庫:資料庫當然可以用來儲存使用者資訊,通常在資料量不大的時候,使用Cookie物件來儲存使用資訊是適當的,但是當資料量太大時就顯得不恰當了。

沒有留言:

張貼留言