【摘要】 本文首先介紹了Session對象的基本含義,其次講解了Session對象的基本用法,最后通過具體的實例演示Session對象如何在兩個Web頁面之間進行參數的傳遞。
【關鍵詞】 Session 參數 生命周期
Session是ASP.NET中的內置對象,在編程中是“會話”的意思。它的主要作用是保存特定用戶的信息,而不同的用戶又無法相互訪問。Session的使用方法非常簡單,要想使用Session對象首先需要給Session賦值,如果需要將某個字符串“abc”存儲到Session對象中,其基本寫法是:Session[”變量名”]=”abc”;,而如果從Session中讀取出變量,其基本寫法是: string abcstring=Session[”變量名”].tostring();。
在開發(fā)ASP.NET網站程序中,大多數的用戶會遇到參數在各個頁面之間如何傳遞的問題。參數的傳遞有多種方法,我們可以利用QueryString傳值、Server.Transfer傳值、Cookie對象傳值,也可以使用Applicaion對象。但如果要實現特定用戶的信息傳遞,Session對象是最好的方法。
Session對象主要是實現各個頁面間傳遞特定參數。在使用Session對象的時候要注意其有生命周期。通常IIS(Internet信息服務)默認設定的時間是20分鐘,如果用戶在20 分鐘內沒有進行任何操作,系統將自動收回Session,或者用戶也可以在系統沒有收回前自行退出登錄或離開頁面,此時Session也將被銷毀。當然網站管理員也可以設置更長的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中,從而實現了頁面之間的參數傳遞。通常在線商城、b/s在線考試軟件中都是使用Session在各個頁面之間進行特定用戶參數的傳遞,這樣用戶只要登陸以后就可以瀏覽網站的各個頁面而不需要再次登陸。由于Session是保存在服務器端的,而Cookie是保存在客戶端的,所以使用Session對象可以大大的提高系統的安全性和可靠性。但也應該注意,如果大量的使用Session會增加服務器的負擔,在安全性要求不太高的情況下應減少Session的使用,以減少服務器的負擔。
總之,通過上面的分析,我們可以看出Session在動態(tài)網頁中起著舉足輕重的作用。它不僅可以將值傳遞給下一個頁面,也可以把值交叉?zhèn)鬟f到多個頁面。
參 考 文 獻
[1]陳長喜.ASP.NET程序設計基礎教程.清華大學出版社,2011.
[2]李國慶.ASP.NET程序設計項目教程.北京理工大學出版社,2010.
王玉寶,男,1981年9月,民族:漢,籍貫:安徽六安人,學歷:本科,職稱:助教,工作單位:皖西衛(wèi)生職業(yè)學院,研究方向:計算機科學與技術.