內置對象:安全
1.QueryString - 地址欄數據拼接 get傳值方式服務器
格式:?key=value優勢:簡單好用,速度快,不消耗服務器內存。 缺點:只能傳字符串,保密性很差,長度有限cookie
Request - 獲取請求對象網站
Request["key"] - 默認返回的就是string類型編碼
Response - 響應請求對象加密
Response.Redirect(path); 頁面重定向,path是重定向的地址spa
Response.Write(" aaaa "); 輸出內容,通常用於輸出JS語句。code
Server.Transfer(path);頁面重定向 對象
Session相對全局對象blog
Session是很是安全的,由於它存在於服務器的內存中,取數據也是最快的
可是,Session不要濫用,由於會形成服務器內存溢出,致使服務器崩潰
Session裏面不要放大東西,若是不用那麼就會形成資源浪費
Session生命週期:只要頁面有提交活動,則Session的全部項都會保持,頁面在20分鐘(默認配置)內沒有任何提交活動時Session會失效。Session內存儲的多個數據項是總體失效的。
建立 Session["user"] = 值;
Session["user"]是object類型使用時轉成相應的類型
Cookies
會話Cookies的生命週期是:20分鐘
Cookies是存在用戶電腦的硬盤上
建立 Response.Cookies["user"].Value =值;
取值
1 if (Request.Cookies["user"] != null)//先判斷cookies有沒有內容 3 { 5 Label1.Text = Request.Cookies["user"].Value; 7 } 9 else// 沒有內容 11 { 13 Response.Redirect("Default.aspx"); 15 }
持久Cookies,保存時間由網站代碼來設置
Response.Cookies["user"].Expires = DateTime.Now.AddDays(7);
若是使用Cookies必需要存放漢字 在別的頁面是不顯示的 須要特定的編碼方式
//建立Cookie ,用UrlEncode方法,TextBox1.Text須要被編譯的內容,System.Text.Encoding.GetEncoding("utf-8")編碼方式 Response.Cookies["as"].Value = HttpUtility.UrlEncode(TextBox1.Text, System.Text.Encoding.GetEncoding("utf-8")); //取值 ,用UrlDecode方法 Label1.Text = HttpUtility.UrlDecode(Request.Cookies["as"].Value, System.Text.Encoding.GetEncoding("utf-8"));
Application
它是全局對象,全局只有這一個對象
只要被建立出來,全部人取的值都是同樣的
生命週期:永久
保存位置:服務端
Application["key"] 是全部的用戶獲取這個key裏面的值都是同樣的, 沒有保存週期,他會一直保存着, 一般用做版本號
賦值:Application["key"]=值;
取值:Application.Get("key");
ViewState:記錄上一個頁面的信息
ViewState 屬性提供一個字典對象,用於在對同一頁的多個請求之間保留值。這是頁用來在往返行程之間保留頁和控件屬性值的默認方法。在處理頁時,頁和控件的當前狀態會散列爲一個字符串,並在頁中保存爲一個隱藏域或多個隱藏域(若是存儲在 ViewState 屬性中的數據量超過了 MaxPageStateFieldLength 屬性中的指定值)。當將頁回發到服務器時,頁會在頁初始化階段分析視圖狀態字符串,並還原頁中的屬性信息。也可使用視圖狀態來存儲值。在默認狀況下,ViewState不被加密,而且發生服務器-客戶端數據傳輸。
ViewState的關鍵特性有:存儲於頁面上,與會話且與頁面相關,被序列化,默認發生服務器-客戶端傳輸,默認不被加密。
至於在什麼樣的狀況下ViewState不發生服務器端-客戶端傳輸,或者被加密,咱們將在後面的章節中予以講述。
ViewState雖然不可以跨頁面共享數據,可是在同一個頁面裏,能夠用於在對同一頁的多個請求之間保留值。