熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

關於JSP中基於Session的在線用戶統計分析[3]

2013-11-15 12:18:24  來源: JSP教程 

  再來看看現在我們怎麼得到一個當前在線的用戶列表

  <body bgcolor=#FFFFFF
  <table cellspacing= cellpadding= width=%
  <tr >
  <td style=width:px>SessionId
  </td>
  <td style=width:px >User
  </td>
  <td style=width:px >Login Time
  </td>
  <td style=width:px >Last Access Time
  </td>
  </tr>
  <%
  Vector activeSessions = (Vector) applicationgetAttribute(activeSessions);
  if (activeSessions == null)
  {
   activeSessions = new Vector();
   applicationsetAttribute(activeSessionsactiveSessions);
  }
  Iterator it = activeSessionsiterator();
  while (ithasNext())
  {
   HttpSession sess = (HttpSession)itnext();
   JDBCUser sessionUser = (JDBCUser)sessgetAttribute(user);
   String userId = (sessionUser!=null)?sessionUsergetUserID():None;
   %>
   <tr>
   <td nowrap=><%= sessgetId() %></td>
   <td nowrap=><%= userId %></td>
   <td nowrap=
   <%= BeaconDategetInstance( new JavautilDate(sessgetCreationTime()))getDateTimeString()%></td>
   <td class=<%= stl %> nowrap=
   <%= BeaconDategetInstance( new javautilDate(sessgetLastAccessedTime()))getDateTimeString()%></td>
   </tr>
   <%
  }
  %>
  </table>
  </body>

  以上的代碼從application中取出activeSessions並且顯示出具體的時間其中BeaconDate類假設為格式化時間的類

  這樣我們得到了一個察看在線用戶的列表的框架至於在線用戶列表分頁等功能與本文無關不予討論

  這是一個非刷新模型的例子依賴於session的超時機制我的同事sonymusic指出很多時候由於各個廠商思想的不同這有可能是不可信賴的考慮到這種需求需要在每個葉面刷新的時候都判斷當前用戶距離上次使用的時間是否超過某一個預定時間值這實質上就是自己實現session超時如果需要實現刷新模型就必須使用這種每個葉面進行刷新判斷的方法

[]  []  []  


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20686.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.