標籤:失效 方法 cat 時間 div 網站 終端 改變 .net
內建對象跨頁面傳值有六種:Request,Response,Session,Cookie,Application,VIewState。
一、Request和ResponseRequest
request請求對象是從用戶端向伺服器發出請求,包括使用者提交的資訊以及用戶端的一些資訊。用戶端可通過HTML表單或在網頁地址後面提供參數的方法提交資料,然後通過request對象的相關方法來擷取這些資料。request的各種方法主要用來處理用戶端瀏覽器提交的請求中的各項參數和選項。
response 響應對象在ASP中負責將資訊傳遞給使用者.Response對象用於動態響應用戶端請求,並將動態產生的響應結果返回到用戶端瀏覽器中,使用Response對象可以直接發送資訊給瀏覽器,重新導向瀏覽器到另一個URL或設定cookie的值等。
//請求對象重新導向傳值Response.Redirect("目標網頁?a=值1&b=值2")。//響應對象獲得參數Request["a"];Request["b"];
QueryString - 地址欄顯示傳值(get)採用索引值對的模式傳值,但有個很大的缺點,會把要傳輸的資料暴露在地址欄裡。
二、Cookie
Cookie,有時也用其複數形式Cookies,指某些網站為了辨別使用者身份、進行 session 跟蹤而儲存在使用者本地終端上的資料(通常經過加密)。定義於 RFC2109 和 2965 中的都已廢棄,最新取代的規範是 RFC6265[1] 。(可以叫做瀏覽器緩衝)
每個瀏覽器都有自己的Cookie。
//建立Cookie對象並重新導向到目標網頁Response.Cookies["鍵"].Value="值";Response.Redirect("目標網頁")//目標網頁接收Cookie對象Request.Cookies["鍵"];
//會話Cookie//20分鐘自動到期關閉瀏覽器自動到期Response.Cookies["鍵"].Value = 值;//持久Cookie //給Cookie設定一個到期時間Response.Cookies["鍵"].Expires = DateTime.Now.AddDays(3);//清除Cookie//將Cookie的到期時間設定為今天以前的時間Response.Response.Cookies["user"].Expires = DateTime.Now.AddDays(-10);
Cookie存在本地用戶端,不佔用伺服器資源,可以用於保持使用者登入狀態,可以緩衝不是很重要的資料。相對來說不是很安全,而且不能存中文。
三、Session
Session直接翻譯成中文比較困難,一般都譯成時域。在電腦專業術語中,Session是指一個終端使用者與互動系統進行通訊的時間間隔,通常指從註冊進入系統到登出退出系統之間所經過的時間。以及如果需要的話,可能還有一定的操作空間。具體到Web中的Session指的就是使用者在瀏覽某個網站時,從進入網站到關閉瀏覽器所經過的這段時間,也就是使用者瀏覽這個網站所花費的時間。因此從上述的定義中我們可以看到,Session實際上是一個特定的時間概念。
//定義Session並重新導向Session["鍵"]="值";Response.Redirect("目標網頁")//接收Session 接收到的是一個object對象Session["鍵"];
Session實際上是存在伺服器上的緩衝,只有會話型,20分鐘或關閉瀏覽器會失效。優點是安全,可以存任意資料類型,缺點是佔用伺服器資源,取到的值是object類型,需要進行類型轉換。
四、Appliction
web 上的一個應用程式可以是一組 ASP 檔案。這些 ASP 檔案一起協同工作來完成某項任務。ASP 中的 Application 對象用來把這些檔案捆綁在一起。Application 對象用於儲存和訪問來自任何頁面的變數,類似於 session 對象。不同之處在於,所有的使用者分享一個 Application 對象,而 session 對象和使用者的關係是一一對應的。Application 對象握有會被應用程式中的許多頁面使用的資訊(比如資料庫連接資訊)。這意味著可以從任何的頁面訪問這些資訊。同時也意味著你可在一個地點改變這些資訊,然後這些改變會自動反映在所有的頁面上。
使用方法和Session一樣,
Application["鍵"]="值";
儲存在服務端,是公用的,所有人共用一套,有效期間永久,不刪除會一直存在,可以用在新聞類的網頁上,針對高並發的資料。缺點是資料不夠及時。
五、ViewState
在web表單控制項設定為runat = "server",這個控制項會被附加一個隱藏的屬性_ViewState,_ViewState存放了所有控制項在ViewState中的狀態值。ViewState是一個名稱/值的對象集合。當請求某個頁面時,ASP.NET會把所有控制項的狀態序列化成一個字串,然後作為表單的隱藏屬性送到用戶端,當用戶端吧頁面回傳時,ASP.NET分析回傳的表單內容,並賦給控制項對應的值。
ViewState類在重新請求頁面時會自動把之前的控制項的狀態填充進去。
ViewState會自動附加。
六、
web端傳值是一件很麻煩的事,因為http的無狀態性。
QueryString是地址欄顯示傳值(get),Cookie和Session都是全域變數(post)。
webform(六)內建對象 跨頁面傳值