C 中Session的用法詳細介紹

2021-10-22 21:28:05 字數 2514 閱讀 4429

在學習之前我們會疑惑,session是什麼呢?簡單來說就是伺服器給客戶端的乙個編號。當一台www伺服器執行時,可能有若干個使用者瀏覽正在運正在這台伺服器上的**。當每 個使用者首次與這台www伺服器建立連線時,他就與這個伺服器建立了乙個session,同時伺服器會自動為其分配乙個sessionid,用以標識這個用 戶的唯一身份。這個sessionid是由www伺服器隨機產生的乙個由24個字元組成的字串,我們會在下面的實驗中見到它的實際樣子。

這個唯一的sessionid是有很大的實際意義的。當乙個使用者提交了表單時,瀏覽器會將使用者的sessionid自動附加在http頭資訊 中,(這是瀏覽器的自動功能,使用者不會察覺到),當伺服器處理完這個表單後,將結果返回給sessionid所對應的使用者。試想,如果沒有 sessionid,當有兩個使用者同時進行註冊時,伺服器怎樣才能知道到底是哪個使用者提交了哪個表單呢。當然,sessionid還有很多其他的作用,我們會在後面提及到。

(1)session中的資料儲存在伺服器端; 

(2)session中可以儲存任意型別的資料; 

(2)session預設的生命週期是20分鐘,可以手動設定更長或更短的時間。

需要注意的是在session變數儲存過多的資料會消耗比較多的伺服器資源,在使用session時應該慎重。

(1)存入字串:

session["

username

"] = "

aaa";

(2)取值:

string str = session["

username

"].tostring();

獲取session時一般這麼寫:string username=session[「username」],但是在給物件賦值的時候我們需要注意兩點:

2.1:判斷是否為null

2.2:型別的轉換

如是什麼某記錄的編號:

session["id"] = 1;

這樣取值:

int id1 = convert.toint32(session["username"]);

(3)釋放方式:清除某個session

session["username"] = null;

session.remove("username");

清除全部session

session.abandon();

session.removeall();

web.config 配置節點語法:

"

off|inproc|stateserver|sqlserver

"cookieless="

true|false

"timeout="

number of minutes

"stateconnectionstring="

tcpip=server:port

"sqlconnectionstring="

sql connection string

"statenetworktimeout="

number of seconds

"/>

mode:設定將session資訊儲存到**

off:不使用session功能;

inproc :將session儲存在iis程序內,這是預設值,也最常用(優點是簡單,效能最高。但是當重啟iis伺服器時session丟失。);

stateserver :將session儲存在asp.net狀態服務程序中(重新啟動web應用程式時保留會話狀態,並使會話狀態可以用於網路中的多個web伺服器。);

sqlserver :將session儲存在sql server中(儲存在記憶體和磁碟中,伺服器掛掉重啟後都還在)。

cookieless:設定客戶端的session資訊儲存到**

ture 使用cookieless模式;這時客戶端的session資訊就不再使用cookie儲存了,而是將其通過url儲存。

false 使用cookie模式,這是預設值

timeout 設定經過多少分鐘後伺服器自動放棄session資訊。預設為20分鐘。

stateconnectionstring 設定將session資訊儲存在狀態服務中時使用的伺服器名稱和埠號

例如:"tcpip=127.0.0.1:42424」。當mode的值是stateserver是,這個屬性是必需的。(預設埠42424)。

sqlconnectionstring 設定與sql server連線時的連線字串。

例如"data source=localhost;integrated security=sspi;initial catalog=joye"。當mode的值是sqlserver時,這個屬性是必需的。

statenetworktimeout 設定當使用stateserver模式儲存session狀態時,經過多少秒空閒後,斷開web伺服器與儲存狀態資訊的伺服器的tcp/ip連線的。預設值是10秒鐘。

C 中MessageBox()的詳細用法

1.messagebox 這是乙個最簡單的訊息框!2.messagebox 這是乙個有標題的訊息框!標題 3.messagebox 這是乙個確定 取消的訊息框!標題 mb okcancel 4.messagebox 這是乙個警告的訊息框!標題 mb iconexclamation 5.message...

jsp中session的用法

jsp 中session的理解 一 session簡單介紹 在web開發中,伺服器可以為每個使用者瀏覽器建立乙個會話物件 session物件 注意 乙個瀏覽器獨佔乙個session物件 預設情況下 因此,在需要儲存使用者資料時,伺服器程式可以把使用者資料寫到使用者瀏覽器獨佔的session中,當使用...

jsp中session 的用法

在第乙個頁面把要儲存的字串用setattribute方法儲存在username中 session.setattribute username 要儲存的字串 在另乙個頁面中通過getattribute方法取得username的值 string xxoo string session.getattrib...