【摘要】 本文首先介紹了Session對象的基本含義,其次講解了Session對象的基本用法,最后通過具體的實例演示Session對象如何在兩個Web頁面之間進行參數(shù)的傳遞。
【關(guān)鍵詞】 Session 參數(shù) 生命周期
Session是ASP.NET中的內(nèi)置對象,在編程中是“會話”的意思。它的主要作用是保存特定用戶的信息,而不同的用戶又無法相互訪問。Session的使用方法非常簡單,要想使用Session對象首先需要給Session賦值,如果需要將某個字符串“abc”存儲到Session對象中,其基本寫法是:Session[”變量名”]=”abc”;,而如果從Session中讀取出變量,其基本寫法是: string abcstring=Session[”變量名”].tostring();。
在開發(fā)ASP.NET網(wǎng)站程序中,大多數(shù)的用戶會遇到參數(shù)在各個頁面之間如何傳遞的問題。參數(shù)的傳遞有多種方法,我們可以利用QueryString傳值、Server.Transfer傳值、Cookie對象傳值,也可以使用Applicaion對象。但如果要實現(xiàn)特定用戶的信息傳遞,Session對象是最好的方法。
Session對象主要是實現(xiàn)各個頁面間傳遞特定參數(shù)。在使用Session對象的時候要注意其有生命周期。通常IIS(Internet信息服務(wù))默認(rèn)設(shè)定的時間是20分鐘,如果用戶在20 分鐘內(nèi)沒有進行任何操作,系統(tǒng)將自動收回Session,或者用戶也可以在系統(tǒng)沒有收回前自行退出登錄或離開頁面,此時Session也將被銷毀。當(dāng)然網(wǎng)站管理員也可以設(shè)置更長的Session的生命周期。
下面以一個項目為例介紹session的使用:
1、在本機安裝一個Visual Studio 2008集成開發(fā)環(huán)境。新建一個WEB項目,命名為SessionTest,添加第一個頁面,名稱為testA.aspx,在testA中添加兩個textbox控件,分別命名為username和password,再添加一個button按鈕,命名為buttonlogin。
2、雙擊buttonlogin按鈕,為button添加click( )事件,具體代碼如下:
protected void Buttonlogin_Click(object sender, EventArgs e)
{
Session["uName"] = username.Text;
Session["pword"] = password.Text;
Response.Redirect("~/testb.aspx");
}
3、添加第二個頁面,名稱為testB.aspx,在頁面中添加2個lable控件,命名為lbluname和lblpword。打開頁面的load()事件,添加如下代碼:
protected void Page_Load(object sender, EventArgs e)
{
lbluname.Text = Session["uName"].ToString();
lblpword.Text = Session["pword"].ToString();
}
4、運行程序,輸入用戶名和密碼,單擊“登陸”,那么在testB頁面就會顯示用戶輸入的用戶名和密碼。
通過上述的實例,可以看到,Session將testA頁面中的用戶名和密碼傳遞到testB 中的label中,從而實現(xiàn)了頁面之間的參數(shù)傳遞。通常在線商城、b/s在線考試軟件中都是使用Session在各個頁面之間進行特定用戶參數(shù)的傳遞,這樣用戶只要登陸以后就可以瀏覽網(wǎng)站的各個頁面而不需要再次登陸。由于Session是保存在服務(wù)器端的,而Cookie是保存在客戶端的,所以使用Session對象可以大大的提高系統(tǒng)的安全性和可靠性。但也應(yīng)該注意,如果大量的使用Session會增加服務(wù)器的負(fù)擔(dān),在安全性要求不太高的情況下應(yīng)減少Session的使用,以減少服務(wù)器的負(fù)擔(dān)。
總之,通過上面的分析,我們可以看出Session在動態(tài)網(wǎng)頁中起著舉足輕重的作用。它不僅可以將值傳遞給下一個頁面,也可以把值交叉?zhèn)鬟f到多個頁面。
參 考 文 獻(xiàn)
[1]陳長喜.ASP.NET程序設(shè)計基礎(chǔ)教程.清華大學(xué)出版社,2011.
[2]李國慶.ASP.NET程序設(shè)計項目教程.北京理工大學(xué)出版社,2010.
王玉寶,男,1981年9月,民族:漢,籍貫:安徽六安人,學(xué)歷:本科,職稱:助教,工作單位:皖西衛(wèi)生職業(yè)學(xué)院,研究方向:計算機科學(xué)與技術(shù).