程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> jsp編程中session的用法實例分析

jsp編程中session的用法實例分析

編輯:關於JSP

本文實例講述了jsp編程中session的用法。分享給大家供大家參考,具體如下:

TTP協議是無狀態的,即信息無法通過HTTP協議本身進傳遞。為了跟蹤用戶的操作狀態,ASP應用SESSION對象。JSP使用一個叫HttpSession的對象實現同樣的功能。HTTPSession 是一個建立在cookies 和URL-rewriting上的高質量的界面。Session的信息保存在服務器端,Session的id保存在客戶機的cookie中。事實上,在許多服務器上,如果浏覽器支持的話它們就使用cookies,但是如果不支持或廢除了的話就自動轉化為URL-rewriting,session自動為每個流程提供了方便地存儲信息的方法。

Session一般在服務器上設置了一個30分鐘的過期時間,當客戶停止活動後自動失效。Session 中保存和檢索的信息不能是基本數據類型如 int, double等,而必須是java的相應的對象,如Integer, Double.

Httpsession具有如下API:

getId 此方法返回唯一的標識,這些標識為每個session而產生。當只有一個單一的值與一個session聯合時,或當日志信息與先前的sessions有關時,它被當作鍵名用。

GetCreationTime 返回session被創建的時間。最小單位為千分之一秒。為得到一個對打印輸出很有用的值,可將此值傳給Date constructor 或者GregorianCalendar的方法setTimeInMillis.

GetLastAccessedTime 返回session最後被客戶發送的時間。最小單位為千分之一秒。

GetMaxInactiveInterval 返回總時間(秒),負值表示session永遠不會超時。

getAttribute 取一個session相聯系的信息。(在jsp1.0中為 getValue)

Integer item = (Integer) session.getAttrobute("item") //檢索出session的值並轉化為整型

setAttribute 提供一個關鍵詞和一個值。會替換掉任何以前的值。(在jsp1.0中為putValue)

session.setAttribute("ItemValue", itemName); // ItemValue 必須不是must簡單類型

在應用中使用最多的是getAttribute和setAttribute.現以一個簡單的例子來說明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>

判斷用戶是否執行刷新操作,避免刷新時也進行相關操作,區分是否首次進入本頁面,session.isNew()。

在線人數統計的例子

<%@ page contentType="text/html; charset=GB2312" %>
<HTML>
<HEAD>
<TITLE>application計數器</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) //判斷用戶是否執行刷新操作
  {
 //將取得的值增加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程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved