jsp編程中session的用法實(shí)例分析
本文實(shí)例講述了jsp編程中session的用法。分享給大家供大家參考,具體如下:
TTP協(xié)議是無狀態(tài)的,即信息無法通過HTTP協(xié)議本身進(jìn)傳遞。為了跟蹤用戶的操作狀態(tài),ASP應(yīng)用SESSION對象。JSP使用一個(gè)叫HttpSession的對象實(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ǔ)信息的方法。
Session一般在服務(wù)器上設(shè)置了一個(gè)30分鐘的過期時(shí)間,當(dāng)客戶停止活動(dòng)后自動(dòng)失效。Session 中保存和檢索的信息不能是基本數(shù)據(jù)類型如 int, double等,而必須是java的相應(yīng)的對象,如Integer, Double.
Httpsession具有如下API:
getId 此方法返回唯一的標(biāo)識,這些標(biāo)識為每個(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è)對打印輸出很有用的值,可將此值傳給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.getAttrobute("item") //檢索出session的值并轉(zhuǎn)化為整型
setAttribute 提供一個(gè)關(guān)鍵詞和一個(gè)值。會(huì)替換掉任何以前的值。(在jsp1.0中為putValue)
session.setAttribute("ItemValue", itemName); // ItemValue 必須不是must簡單類型
在應(yīng)用中使用最多的是getAttribute和setAttribute.現(xiàn)以一個(gè)簡單的例子來說明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í)行刷新操作,避免刷新時(shí)也進(jìn)行相關(guān)操作,區(qū)分是否首次進(jìn)入本頁面,session.isNew()。
在線人數(shù)統(tǒng)計(jì)的例子
<%@ page contentType="text/html; charset=GB2312" %> <HTML> <HEAD> <TITLE>application計(jì)數(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%> 個(gè)訪問本站的客戶。 </BODY> </HTML>
希望本文所述對大家jsp程序設(shè)計(jì)有所幫助。
相關(guān)文章
詳解Spring data 定義默認(rèn)時(shí)間與日期的實(shí)例
這篇文章主要介紹了詳解Spring data 定義默認(rèn)時(shí)間與日期的實(shí)例的相關(guān)資料,這里提供實(shí)例幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下2017-08-08一個(gè)開發(fā)人員眼中的JSP技術(shù)(上)
一個(gè)開發(fā)人員眼中的JSP技術(shù)(上)...2006-10-10Apache+Servlet+Jsp環(huán)境設(shè)置(下)
Apache+Servlet+Jsp環(huán)境設(shè)置(下)...2006-10-10搭建EXTJS和STRUTS2框架(ext和struts2簡單實(shí)例)
搭建EXTJS和STRUTS2框架(ext和struts2簡單實(shí)例)2009-12-12在JSP頁面中動(dòng)態(tài)生成圖片驗(yàn)證碼的方法實(shí)例
今天小編就為大家分享一篇關(guān)于在JSP頁面中動(dòng)態(tài)生成圖片驗(yàn)證碼的方法實(shí)例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03JSP開發(fā)中Apache-HTTPClient 用戶驗(yàn)證的實(shí)例詳解
這篇文章主要介紹了JSP開發(fā)中Apache-HTTPClient 用戶驗(yàn)證的實(shí)例詳解的相關(guān)資料,這里提供實(shí)例幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下2017-08-08用Java實(shí)現(xiàn)FTP服務(wù)器解決方案
用Java實(shí)現(xiàn)FTP服務(wù)器解決方案...2006-10-10