黄色电影一区二区,韩国少妇自慰A片免费看,精品人妻少妇一级毛片免费蜜桃AV按摩师 ,超碰 香蕉

jsp session.setAttribute()和session.getAttribute()用法案例詳解
目錄

session簡(jiǎn)單介紹

  在web開發(fā)中,服務(wù)器可以為每個(gè)用戶瀏覽器創(chuàng)建一個(gè)會(huì)話對(duì)象(session對(duì)象),注意:一個(gè)瀏覽器獨(dú)占一個(gè)session對(duì)象(默認(rèn)情況下)。因此,在需要保存用戶數(shù)據(jù)時(shí),服務(wù)器程序可以把用戶數(shù)據(jù)寫到用戶瀏覽器獨(dú)占的session中,當(dāng)用戶使用瀏覽器訪問其它程序時(shí),其它程序可以從用戶的session中取出該用戶的數(shù)據(jù),為用戶服務(wù)。

session和cookie的主要區(qū)別

  • cookie是把用戶的數(shù)據(jù)寫給用戶的瀏覽器。
  • session技術(shù)把用戶的數(shù)據(jù)寫到用戶獨(dú)占的session中。
  • session對(duì)象由服務(wù)器創(chuàng)建,開發(fā)人員可以調(diào)用request對(duì)象的getsession方法得到session對(duì)象。

基本語(yǔ)法

1,對(duì)于值類型的變量,session中保存的是值類型的拷貝

session["__test0"] = 1;

int i = (int)session["__test0"]+1;

int j = (int)session["__test0"];

結(jié)果:

i=2,j=1

2,對(duì)于引用類型的變量,session中保存的是引用

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";

3,session周期

新的瀏覽器窗口啟動(dòng)后,開始一個(gè)新的session,觸發(fā)global的session_start的調(diào)用,從第一個(gè)瀏覽器窗口打開的瀏覽器窗口不啟動(dòng)新的session。session過期后,執(zhí)行頁(yè)面的提交也會(huì)觸發(fā)session_start,等于是新的一個(gè)session。

4,調(diào)用session

對(duì)于web service,每個(gè)方法的調(diào)用都會(huì)啟動(dòng)一個(gè)session,可以用下面的方法來(lái)使多個(gè)調(diào)用在同一個(gè)session里  cwssyscfg cwscfg = new cwssyscfg(); cwscfg.cookiecontainer = new system net.cookiecontainer(); cwssyscfg是一個(gè)web service類,web service的給代理類設(shè)置cookiecontainer屬性,只要多個(gè)代理的cookiecontainer屬性是相同的值,則對(duì)這些web service的調(diào)用在同一個(gè)session??梢杂脝卫J絹?lái)實(shí)現(xiàn)。

5,session數(shù)據(jù)有效期

只要頁(yè)面有提交活動(dòng),則session的所有項(xiàng)都會(huì)保持,頁(yè)面在20分鐘(默認(rèn)配置)內(nèi)沒有任何提交活動(dòng)時(shí)session會(huì)失效。session內(nèi)存儲(chǔ)的多個(gè)數(shù)據(jù)項(xiàng)是整體失效的。

6,session的保存

在session中如果保存的是非序列化的類比如dataview,在用sqlserver保存session的模式下,無(wú)法使用。查看一個(gè)類是否是序列化的方法是,需看是否用[serializable]來(lái)標(biāo)記了該類.

在jsp中

jsp的session是使用bean的一個(gè)生存期限,一般為page,session意思是在這個(gè)用戶沒有離開網(wǎng)站之前一直有效,如果無(wú)法判斷用戶何時(shí)離開,一般依據(jù)系統(tǒng)設(shè)定,tomcat中設(shè)定為30分鐘.

jsp使用一個(gè)叫httpsession的對(duì)象實(shí)現(xiàn)同樣的功能。httpsession 是一個(gè)建立在cookies 和url-rewriting上的高質(zhì)量的界面。session的信息保存在服務(wù)器端,session的id保存在客戶機(jī)的cookie中。事實(shí)上,在許多服務(wù)器上,如果瀏覽器支持的話它們就使用cookies,但是如果不支持或廢除了的話就自動(dòng)轉(zhuǎn)化為url-rewriting,session自動(dòng)為每個(gè)流程提供了方便地存儲(chǔ)信息的方法。

httpsession具有如下api:

getid 此方法返回唯一的標(biāo)識(shí),這些標(biāo)識(shí)為每個(gè)session而產(chǎn)生。當(dāng)只有一個(gè)單一的值與一個(gè)session聯(lián)合時(shí),或當(dāng)日志信息與先前的sessions有關(guān)時(shí),它被當(dāng)作鍵名用。

getcreationtime 返回session被創(chuàng)建的時(shí)間。最小單位為千分之一秒。為得到一個(gè)對(duì)打印輸出很有用的值,可將此值傳給date constructor 或者gregoriancalendar的方法settimeinmillis.

getlastaccessedtime 返回session最后被客戶發(fā)送的時(shí)間。最小單位為千分之一秒。

getmaxinactiveinterval 返回總時(shí)間(秒),負(fù)值表示session永遠(yuǎn)不會(huì)超時(shí)。

getattribute 取一個(gè)session相聯(lián)系的信息。(在jsp1.0中為 getvalue)

integer item = (integer) session.getattribute("item") //檢索出session的值并轉(zhuǎn)化為整型

setattribute 提供一個(gè)關(guān)鍵詞和一個(gè)值。會(huì)替換掉任何以前的值。(在jsp1.0中為putvalue)

session.setattribute("itemvalue", itemname); // itemvalue 必須不是must簡(jiǎn)單類型

在應(yīng)用中使用最多的是getattribute和setattribute.現(xiàn)以一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明session的應(yīng)用,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)容請(qǐng)搜索碩編程以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持碩編程!

相關(guān)文章