================================================================================
1.Application:用于保存所有用戶共用的數(shù)據(jù)信息。 在Asp.Net中類似的配置數(shù)據(jù)最好保存在Web.config文件中。如果使用Application對象,一個(gè)需要考慮的問題是任何寫操作都要在 Application_OnStart事件(global.asax)中完成。盡管使用Application.Lock和 Application.Unlock方法來避免寫操作的同步,但是它串行化了Application對象的請求,當(dāng)網(wǎng)站訪問量大的時(shí)候會(huì)產(chǎn)生嚴(yán)重的性能 瓶頸。因此最好不要用此對象保存大的數(shù)據(jù)集。
使用如下:
//存放信息
Application["UserNameID"]="1000";
//讀取信息
String NameID=Application["UserNameID"].ToString();
2.Session:用于保存每個(gè)用戶的專用信息。Session中的信息保存在Web服務(wù)器的內(nèi)存中,保存的數(shù)據(jù)量可大可小。當(dāng)Session超時(shí)或被關(guān)閉時(shí)將自動(dòng)釋放保存的數(shù)據(jù)信息。對于小量的數(shù)據(jù)Session對象保存還是一個(gè)不錯(cuò)的選擇。
使用如下:
//存放信息
Session["UserNameID"]="1000";
//讀取信息
String NameID=Session["UserNameID"].ToString();
3.Cookie: 用于保存客戶瀏覽器請求服務(wù)器頁面的請求信息,其有效期可以人為設(shè)置,而且其存儲(chǔ)的數(shù)據(jù)量很受限制,因此不要保存數(shù)據(jù)集及其他大量數(shù)據(jù)。而且Cookie以明文方式將數(shù)據(jù)信息保存在客戶端的計(jì)算機(jī)中,因此最好不要保存敏感的未加密的數(shù)據(jù)。
使用如下:
//存放信息
Response.Cookie["UserNameID"].Value="1000";
//讀取信息
String NameID=Response.Cookie["UserNameID"].Value;
4.ViewState: 常用于保存單個(gè)用戶的狀態(tài)信息,可以保存大量的數(shù)據(jù)但是過多使用會(huì)影響應(yīng)用程序的性能。所有Web服務(wù)器控件都使用ViewStat在頁面回發(fā)期間保存自 己的狀態(tài)信息。每個(gè)控件都有自己的ViewState,不用時(shí)最好關(guān)閉以節(jié)省資源。通過給@Page指令添加"EnableViewState= false"屬性可以禁止整個(gè)頁面的ViewState。
使用如下:
//存取信息
ViewState["UserNameID"]="1000";
//讀取信息
string NameID=ViewState["UserNameID"].ToString();
5.Cache:用于在Http請求間保存頁面和數(shù)據(jù)。它允許將頻繁訪問的大量服務(wù)器資源存儲(chǔ)在內(nèi)存中,當(dāng)用戶發(fā)出相同的請求時(shí)服務(wù)器不再次處理而是將Cache中保存的信息返回給用戶,節(jié)省了服務(wù)器處理請求時(shí)間。
使用如下:
//存放信息
Cache["UserNameID"]="1000";
//存放信息
Cache.Insert("UserNameID","1000");
//讀取信息
String UserNameID=Cache["UserNameID"].ToString();
6.隱藏域:Hidden控件屬于Html類型的服務(wù)器控件,可以實(shí)現(xiàn)隱藏域的功能,他和其他的空間沒什么區(qū)別只是不會(huì)在瀏覽器上顯示,始終處于隱藏狀態(tài)。
使用如下:
//存放信息
Hidden.Value="1000";
//讀取信息
String UserNameID=Hidden.Value;
7.查詢字符串:將傳遞的值連接在URL后面,然后通過Response.Redirect方法實(shí)現(xiàn)客戶端的重定向。
使用如下:
Response.Redirect("User.aspx?UserNameID=10000&LevelD=100");
執(zhí)行上面的語句后在IE地址欄顯示的URL的代碼如下:
http://localhost/User.aspx?UserNameID=1000&LevelID=100
當(dāng)跳轉(zhuǎn)到User.aspx后,可以通過下面代碼獲得傳遞的信息:
String UserNameID,LevelD;
UserNameID=Request.Params["UserNameID"];
LevelD=Request["LevelD"];
================================================================================
Application
1. Application用來保存所有用戶共用的信息
2. 在Asp時(shí)代,如果要保存的數(shù)據(jù)在應(yīng)用程序生存期內(nèi)不會(huì)或者很少發(fā)生改變,那么使用Application是理想的選擇。但是在Asp.net開發(fā)環(huán)境中我們把類似的配置數(shù)據(jù)放在Web.config中。
3. 如果要使用Application 要注意的是所有的寫操作都要在Application_OnStart事件中完成(global.Asax),盡管可以使用Application.Lock()避免了沖突,但是它串行化了對Application的請求,會(huì)產(chǎn)生嚴(yán)重的性能瓶頸。
4. 不要使用Application保存大數(shù)據(jù)量信息
5. 代碼:Application[“UserID”]=”test”;
String UserName=Application[“UserID”].ToString();
Session
1. Session用來保存每一個(gè)用戶的專有信息
2. Session的生存期是用戶持續(xù)請求時(shí)間加上一段時(shí)間(一般是20分鐘左右)
3. Session信息是保存在Web服務(wù)器內(nèi)存中的,保存數(shù)據(jù)量可大可小
4. Session超時(shí)或者被關(guān)閉將自動(dòng)釋放數(shù)據(jù)信息
5. 由于用戶停止使用應(yīng)用程序之后它仍在內(nèi)存中存留一段時(shí)間,因此這種方法效率較低
6. 代碼:Session[“UserID”]=”test”;
String UserName=Session[“UserID”].ToString();
Cookie
1. Cookie用來保存客戶瀏覽器請求服務(wù)器頁面的請求信息
2. 我們可以存放非敏感的用戶信息,保存時(shí)間可以根據(jù)需要設(shè)置
3. 如果沒有設(shè)置Cookie失效日期,它的生命周期保存到關(guān)閉瀏覽器為止
4. Cookie對象的Expires屬性設(shè)置為MinValue表示永不過期
5. Cookie存儲(chǔ)的數(shù)據(jù)量受限制,大多數(shù)的瀏覽器為4K因此不要存放大數(shù)據(jù)
6. 由于并非所有的瀏覽器都支持Cookie,數(shù)據(jù)將以明文的形式保存在客戶端
7. 代碼:Resopnse.Cookies[“UserID”]=”test”;
String UserName= Resopnse.Cookies [“UserID”].ToString();
ViewState
1. ViewState用來保存用戶的狀態(tài)信息,有效期等于頁面的生命周期
2. 可以保存大量數(shù)據(jù)但是要慎用,因?yàn)闀?huì)影響程序性能
3. 所有的Web服務(wù)器控件都是用ViewState在頁面PostBack期間保存狀態(tài)
4. 不需要?jiǎng)t關(guān)閉 @page 里面設(shè)置EnableViewState=false
5. 代碼:ViewState[”ID”]=”cc”;
String ID =ViewState[“ID”].ToString();
Cache
1. Cache用于在Http請求期間保存頁面或者數(shù)據(jù)
2. Cache的使用可以大大的提高整個(gè)應(yīng)用程序的效率
3. 它允許將頻繁訪問的服務(wù)器資源存儲(chǔ)在內(nèi)存中,當(dāng)用戶發(fā)出相同的請求后
服務(wù)器不是再次處理而是將Cache中保存的數(shù)據(jù)直接返回給用戶
4. 可以看出Cache節(jié)省的是時(shí)間—服務(wù)器處理時(shí)間
5. Cache實(shí)例是每一個(gè)應(yīng)用程序?qū)S械?,其生命周?=該應(yīng)用程序周期
應(yīng)用程序重啟將重新創(chuàng)建其實(shí)例
6. 注意:如果要使用緩存的清理、到期管理、依賴項(xiàng)等功能必須使用Insert 或者Add方法方法添加信息
7. 代碼:Cache[”ID”]=”cc”;或者Cache.Insert(“ID”,”test”);
String ID =Cache[“ID”].ToString();
Hidden
1. Hidden控件屬于Html類型的服務(wù)器控件,始終處于隱藏狀態(tài)
2. 每一次提交的時(shí)候它會(huì)和其他服務(wù)器控件一起提交到服務(wù)器端
3. 代碼如下:Hidden.Value=”cc”;
string id=Hidden.Value; 要使用Runat=server