標籤:訪問時間 ted creat 分享 對象關聯 https tco session應用 lang
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>
jsp內建對象--session