在WEB開發(fā)中,服務器可以為每個用戶瀏覽器創(chuàng)建一個會話對象(session對象),注意:一個瀏覽器獨占一個session對象(默認情況下)。因此,在需要保存用戶數(shù)據(jù)時,服務器程序可以把用戶數(shù)據(jù)寫到用戶瀏覽器獨占的session中,當用戶使用瀏覽器訪問其它程序時,其它程序可以從用戶的session中取出該用戶的數(shù)據(jù),為用戶服務。
Session["__test0"] = 1; int i = (int)Session["__test0"]+1; int j = (int)Session["__test0"];
結(jié)果:
i=2,j=1
CDACommon cda = new CDACommon(); Session["__test"] = cda.GetDataSet("select top 1 * from tb_customer"); DataSet ds = (DataSet)Session["__test"]; DataSet ds2 = (DataSet)Session["__test"]; ds.Tables[0].Rows[0][0]="9999";
結(jié)果:
ds.Tables[0].Rows[0][0]=="9999"
ds2.Tables[0].Rows[0][0]=="9999";
新的瀏覽器窗口啟動后,開始一個新的Session,觸發(fā)Global的Session_Start的調(diào)用,從第一個瀏覽器窗口打開的瀏覽器窗口不啟動新的Session。Session過期后,執(zhí)行頁面的提交也會觸發(fā)Session_Start,等于是新的一個Session。
對于Web Service,每個方法的調(diào)用都會啟動一個Session,可以用下面的方法來使多個調(diào)用在同一個Session里 CWSSyscfg cwsCfg = new CWSSyscfg(); cwsCfg.CookieContainer = new System Net.CookieContainer(); CWSSyscfg是一個Web Service類,Web Service的給代理類設置CookieContainer屬性,只要多個代理的CookieContainer屬性是相同的值,則對這些Web Service的調(diào)用在同一個Session??梢杂脝卫J絹韺崿F(xiàn)。
只要頁面有提交活動,則Session的所有項都會保持,頁面在20分鐘(默認配置)內(nèi)沒有任何提交活動時Session會失效。Session內(nèi)存儲的多個數(shù)據(jù)項是整體失效的。
在Session中如果保存的是非序列化的類比如DataView,在用SQLServer保存Session的模式下,無法使用。查看一個類是否是序列化的方法是,需看是否用[Serializable]來標記了該類.
Jsp的session是使用bean的一個生存期限,一般為page,session意思是在這個用戶沒有離開網(wǎng)站之前一直有效,如果無法判斷用戶何時離開,一般依據(jù)系統(tǒng)設定,tomcat中設定為30分鐘.
JSP使用一個叫HttpSession的對象實現(xiàn)同樣的功能。HTTPSession 是一個建立在cookies 和URL-rewriting上的高質(zhì)量的界面。Session的信息保存在服務器端,Session的id保存在客戶機的cookie中。事實上,在許多服務器上,如果瀏覽器支持的話它們就使用cookies,但是如果不支持或廢除了的話就自動轉(zhuǎn)化為URL-rewriting,session自動為每個流程提供了方便地存儲信息的方法。
Httpsession具有如下API:
getId 此方法返回唯一的標識,這些標識為每個session而產(chǎn)生。當只有一個單一的值與一個session聯(lián)合時,或當日志信息與先前的sessions有關(guān)時,它被當作鍵名用。
GetCreationTime 返回session被創(chuàng)建的時間。最小單位為千分之一秒。為得到一個對打印輸出很有用的值,可將此值傳給Date constructor 或者GregorianCalendar的方法setTimeInMillis.
GetLastAccessedTime 返回session最后被客戶發(fā)送的時間。最小單位為千分之一秒。
GetMaxInactiveInterval 返回總時間(秒),負值表示session永遠不會超時。
getAttribute 取一個session相聯(lián)系的信息。(在jsp1.0中為 getValue)
Integer item = (Integer) session.getAttribute("item") //檢索出session的值并轉(zhuǎn)化為整型
setAttribute 提供一個關(guān)鍵詞和一個值。會替換掉任何以前的值。(在jsp1.0中為putValue)
session.setAttribute("ItemValue", itemName); // ItemValue 必須不是must簡單類型
在應用中使用最多的是getAttribute和setAttribute.現(xiàn)以一個簡單的例子來說明session的應用,test1.jsp(信息寫入session),test2.jsp(從session讀出信息)。
test1.jsp
HTML> HEAD> TITLE> Document /TITLE> /HEAD> BODY BGCOLOR="#FFFFFF"> % session.setAttribute("str",new String(“this is test”)); %> /BODY> /HTML>
test2.jsp
HTML> HEAD> TITLE> New Document /TITLE> /HEAD> BODY BGCOLOR="#FFFFFF"> % String ls_str=null; ls_str=(String)session.getAttribute("str"); out.println(“從session里取出的值為:”+ls_str); %> /BODY> /HTML>
到此這篇關(guān)于jsp session.setAttribute()和session.getAttribute()用法案例詳解的文章就介紹到這了,更多相關(guān)jsp session.setAttribute()和session.getAttribute()用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
標簽:大連 銅川 南京 廣州 樂山 黃石 貸款邀約 內(nèi)江
巨人網(wǎng)絡通訊聲明:本文標題《jsp session.setAttribute()和session.getAttribute()用法案例詳解》,本文關(guān)鍵詞 jsp,session.setAttribute,和,session.getAttribute,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。