本文實例講述了jsp編程中session的用法。分享給大家供大家參考,具體如下:
TTP協(xié)議是無狀態(tài)的,即信息無法通過HTTP協(xié)議本身進(jìn)傳遞。為了跟蹤用戶的操作狀態(tài),ASP應(yīng)用SESSION對象。JSP使用一個叫HttpSession的對象實現(xiàn)同樣的功能。HTTPSession 是一個建立在cookies 和URL-rewriting上的高質(zhì)量的界面。Session的信息保存在服務(wù)器端,Session的id保存在客戶機的cookie中。事實上,在許多服務(wù)器上,如果瀏覽器支持的話它們就使用cookies,但是如果不支持或廢除了的話就自動轉(zhuǎn)化為URL-rewriting,session自動為每個流程提供了方便地存儲信息的方法。
Session一般在服務(wù)器上設(shè)置了一個30分鐘的過期時間,當(dāng)客戶停止活動后自動失效。Session 中保存和檢索的信息不能是基本數(shù)據(jù)類型如 int, double等,而必須是java的相應(yīng)的對象,如Integer, Double.
Httpsession具有如下API:
getId 此方法返回唯一的標(biāo)識,這些標(biāo)識為每個session而產(chǎn)生。當(dāng)只有一個單一的值與一個session聯(lián)合時,或當(dāng)日志信息與先前的sessions有關(guān)時,它被當(dāng)作鍵名用。
GetCreationTime 返回session被創(chuàng)建的時間。最小單位為千分之一秒。為得到一個對打印輸出很有用的值,可將此值傳給Date constructor 或者GregorianCalendar的方法setTimeInMillis.
GetLastAccessedTime 返回session最后被客戶發(fā)送的時間。最小單位為千分之一秒。
GetMaxInactiveInterval 返回總時間(秒),負(fù)值表示session永遠(yuǎn)不會超時。
getAttribute 取一個session相聯(lián)系的信息。(在jsp1.0中為 getValue)
Integer item = (Integer) session.getAttrobute("item") //檢索出session的值并轉(zhuǎn)化為整型
setAttribute 提供一個關(guān)鍵詞和一個值。會替換掉任何以前的值。(在jsp1.0中為putValue)
session.setAttribute("ItemValue", itemName); // ItemValue 必須不是must簡單類型
在應(yīng)用中使用最多的是getAttribute和setAttribute.現(xiàn)以一個簡單的例子來說明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>
判斷用戶是否執(zhí)行刷新操作,避免刷新時也進(jìn)行相關(guān)操作,區(qū)分是否首次進(jìn)入本頁面,session.isNew()。
在線人數(shù)統(tǒng)計的例子
%@ page contentType="text/html; charset=GB2312" %>
HTML>
HEAD>
TITLE>application計數(shù)器/TITLE>
/HEAD>
BODY>
BR>
%
Integer number=(Integer)application.getAttribute("Count");
//檢查Count屬性是否可取得
if(number==null)
{
number=new Integer(1);
application.setAttribute("Count",number);
}
if(session.isNew()==true) //判斷用戶是否執(zhí)行刷新操作
{
//將取得的值增加1
number=new Integer(number.intValue()+1);
application.setAttribute("Count",number);
}
%>
P>P>您是第
%int a=((Integer)pageContext.getAttribute("Count",PageContext.APPLICATION_SCOPE)).intValue();
%>
%=a%>
個訪問本站的客戶。
/BODY>
/HTML>
希望本文所述對大家jsp程序設(shè)計有所幫助。
您可能感興趣的文章:- jsp中存取session值簡單介紹
- JSP 中Session的詳解及原理分析
- JSP Session超時設(shè)置的實現(xiàn)方法
- 利用JSP session對象保持住登錄狀態(tài)
- jsp獲取action傳來的session和session清空以及判斷
- Jsp中解決session過期跳轉(zhuǎn)到登陸頁面并跳出iframe框架的方法
- JSP中 Session和作用域的使用
- jsp 對request.getSession(false)的理解(附程序員常疏忽的一個漏洞)
- jsp如何獲取Session中的值