jsp內建對象------session

來源:互聯網
上載者:User

標籤:jsp   允許   charset   conf   session   enum   html   XML   特定   

session對象

JSP利用servlet提供的HttpSession介面來識別一個使用者,儲存這個使用者的所有訪問資訊。

預設情況下,JSP允許會話跟蹤,一個新的HttpSession對象將會自動地為新的用戶端執行個體化。禁止會話跟蹤需要顯式地關掉它,通過將page指令中session屬性值設為false來實現,就像下面這樣:

 1 <%@ page session="false" %> 

JSP引擎將隱含的session對象暴露給開發人員。由於提供了session對象,開發人員就可以方便地儲存或檢索資料。

下表列出了session對象的一些重要方法:

S.N. 方法 & 描述
1 public Object getAttribute(String name)

 

返回session對象中與指定名稱綁定的對象,如果不存在則返回null
2 public Enumeration getAttributeNames()

 

返回session對象中所有的對象名稱
3 public long getCreationTime()

 

返回session對象被建立的時間, 以毫秒為單位,從1970年1月1號淩晨開始算起
4 public String getId()

 

返回session對象的ID
5 public long getLastAccessedTime()

 

返回用戶端最後訪問的時間,以毫秒為單位,從1970年1月1號淩晨開始算起
6 public int getMaxInactiveInterval()

 

返回最大時間間隔,以秒為單位,servlet 容器將會在這段時間內保持會話開啟
7 public void invalidate()

 

將session無效化,解除綁定任何與該session綁定的對象
8 public boolean isNew()

 

返回是否為一個新的用戶端,或者用戶端是否拒絕加入session
9 public void removeAttribute(String name)

 

移除session中指定名稱的對象
10 public void setAttribute(String name, Object value) 

 

使用指定的名稱和值來產生一個對象並綁定到session中
11 public void setMaxInactiveInterval(int interval)

 

用來指定時間,以秒為單位,servlet容器將會在這段時間內保持會話有效
JSP Session應用

這個例子描述了如何使用HttpSession對象來擷取建立時間和最後一次訪問時間。我們將會為request對象關聯一個新的session對象,如果這個對象尚未存在的話。

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <%@ page import="java.io.*,java.util.*" %> 4 <% 5    // 擷取session建立時間 6    Date createTime = new Date(session.getCreationTime()); 7    // 擷取最後訪問頁面的時間 8    Date lastAccessTime = new Date(session.getLastAccessedTime()); 9 10    String title = "再次訪問菜鳥教程執行個體";11    Integer visitCount = new Integer(0);12    String visitCountKey = new String("visitCount");13    String userIDKey = new String("userID");14    String userID = new String("ABCD");15 16    // 檢測網頁是否由新的訪問使用者17    if (session.isNew()){18       title = "訪問菜鳥教程執行個體";19       session.setAttribute(userIDKey, userID);20       session.setAttribute(visitCountKey,  visitCount);21    } else {22        visitCount = (Integer)session.getAttribute(visitCountKey);23        visitCount += 1;24        userID = (String)session.getAttribute(userIDKey);25        session.setAttribute(visitCountKey,  visitCount);26    }27 %>28 <html>29 <head>30 <title>Session 跟蹤</title>31 </head>32 <body>33 34 <h1>Session 跟蹤</h1>35 36 <table border="1" align="center"> 37 <tr bgcolor="#949494">38    <th>Session 資訊</th>39    <th>值</th>40 </tr> 41 <tr>42    <td>id</td>43    <td><% out.print( session.getId()); %></td>44 </tr> 45 <tr>46    <td>建立時間</td>47    <td><% out.print(createTime); %></td>48 </tr> 49 <tr>50    <td>最後訪問時間</td>51    <td><% out.print(lastAccessTime); %></td>52 </tr> 53 <tr>54    <td>使用者識別碼</td>55    <td><% out.print(userID); %></td>56 </tr> 57 <tr>58    <td>訪問次數</td>59    <td><% out.print(visitCount); %></td>60 </tr> 61 </table> 62 </body>63 </html>

 

 

刪除Session資料

當處理完一個使用者的會話資料後,您可以有如下選擇:

  • 移除一個特定的屬性:

    調用public void removeAttribute(String name)  方法來移除指定的屬性。

  • 刪除整個會話:

    調用public void invalidate() 方法來使整個session無效。

  • 設定會話有效期間:

    調用 public void setMaxInactiveInterval(int interval)  方法來設定session逾時。

  • 登出使用者:

    支援servlet2.4版本的伺服器,可以調用 logout()方法來登出使用者,並且使所有相關的session無效。

  • 配置web.xml檔案:

    如果使用的是Tomcat,可以向下面這樣配置web.xml檔案:

  <session-config>    <session-timeout>15</session-timeout>  </session-config>

逾時以分鐘為單位,Tomcat中的預設的逾時時間是30分鐘。

Servlet中的getMaxInactiveInterval( ) 方法以秒為單位返回逾時時間。如果在web.xml中配置的是15分鐘,則getMaxInactiveInterval( ) 方法將會返回900。

jsp內建對象------session

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.