jsp編程中session的用法執行個體分析_JSP編程

來源:互聯網
上載者:User

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

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

Session一般在伺服器上設定了一個30分鐘的到期時間,當客戶停止活動後自動失效。Session 中儲存和檢索的資訊不能是基礎資料型別 (Elementary Data Type)如 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程式設計有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.