日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > JSP > 正文

JSP如何統計在線人數和注冊人數

2024-09-05 00:23:38
字體:
來源:轉載
供稿:網友
一、統計在線人數
1.監聽器
Java代碼 復制代碼
  1. package com.logcd.listener;   
  2.   
  3. import javax.servlet.ServletContext;    
  4. import javax.servlet.http.HttpSessionEvent;    
  5. import javax.servlet.http.HttpSessionListener;    
  6.   
  7. public class SessionCounter implements HttpSessionListener {    
  8.     public void sessionCreated(HttpSessionEvent event) {    
  9.         ServletContext ctx = event.getSession( ).getServletContext( );    
  10.         Integer numSessions = (Integer) ctx.getAttribute("numSessions");    
  11.         if (numSessions == null) {    
  12.             numSessions = new Integer(1);    
  13.         }else {    
  14.             int count = numSessions.intValue( );    
  15.             numSessions = new Integer(count + 1);    
  16.         }    
  17.         ctx.setAttribute("numSessions", numSessions);    
  18.     }    
  19.     public void sessionDestroyed(HttpSessionEvent event) {    
  20.         ServletContext ctx = event.getSession( ).getServletContext( );    
  21.         Integer numSessions = (Integer) ctx.getAttribute("numSessions");    
  22.         if (numSessions == null) {    
  23.             numSessions = new Integer(0);    
  24.         }    
  25.         else {    
  26.             int count = numSessions.intValue( );    
  27.             numSessions = new Integer(count - 1);    
  28.         }    
  29.         ctx.setAttribute("numSessions", numSessions);    
  30.     }    
  31. }   

說明:實現了HttpSessionListener定義的兩個方法:sessionCreated()和sessionDestroyed()。這兩個方法可以監聽到當前應用中session的創建和銷毀情況。
以下兩種情況下就會發生sessionDestoryed(會話銷毀)事件:
(1)執行session.invalidate()方法時。
(2)如果用戶長時間沒有訪問服務器,超過了會話最大超時時間,服務器就會自動銷毀超時的session。
Xml代碼 復制代碼
  1. <session-config>  
  2.     <session-timeout>1</session-timeout>  
  3. </session-config>  
時間單位是一分鐘,并且只能是整數,如果是零或負數,那么會話就永遠不會超時。
2.web.xml中配置
Xml代碼 復制代碼
  1. <listener>    
  2.      <listener-class>com.logcd.listener.SessionCounter</listener-class>    
  3. </listener>   

3.jsp調用
Html代碼 復制代碼
  1. 目前共有<span class="salient"> <%=application.getAttribute("numSessions")%> </span>人在線  

二、統計注冊人數
1.監聽器
Java代碼 復制代碼
  1. package com.logcd.listener;   
  2.   
  3. import java.util.HashMap;   
  4. import java.util.Map;   
  5.   
  6. import javax.servlet.ServletContext;   
  7. import javax.servlet.http.HttpSession;   
  8. import javax.servlet.http.HttpSessionBindingEvent;   
  9. import javax.servlet.http.HttpSessionBindingListener;   
  10.   
  11. public class OnlineUserBindingListener implements HttpSessionBindingListener{   
  12.   
  13.     private String userId;   
  14.     private String userName;   
  15.        
  16.     public OnlineUserBindingListener(String userId,String username){   
  17.         this.setUserId(userId);   
  18.         this.setUserName(userName);   
  19.     }   
  20.        
  21.     @SuppressWarnings("unchecked")   
  22.     public void valueBound(HttpSessionBindingEvent event) {   
  23.         HttpSession session = event.getSession();   
  24.         ServletContext application = session.getServletContext();   
  25.   
  26.         // 把用戶放入在線列表   
  27.         Map onlineUserList = (Map) application.getAttribute("onlineUserList");   
  28.         // 第一次使用前,需要初始化   
  29.         if (onlineUserList == null) {   
  30.             onlineUserList = new HashMap();   
  31.             application.setAttribute("onlineUserList", onlineUserList);   
  32.         }   
  33.         onlineUserList.put(this.userId, this.userName);   
  34.            
  35.     }   
  36.   
  37.     public void valueUnbound(HttpSessionBindingEvent event) {   
  38.         HttpSession session = event.getSession();   
  39.         ServletContext application = session.getServletContext();   
  40.   
  41.         // 從在線列表中刪除用戶   
  42.         Map onlineUserList = (Map) application.getAttribute("onlineUserList");   
  43.         onlineUserList.remove(this.userId);   
  44.            
  45.     }   
  46.   
  47.   
  48.     public String getUserId() {   
  49.         return userId;   
  50.     }   
  51.   
  52.     public void setUserId(String userId) {   
  53.         this.userId = userId;   
  54.     }   
  55.   
  56.     public String getUserName() {   
  57.         return userName;   
  58.     }   
  59.   
  60.     public void setUserName(String userName) {   
  61.         this.userName = userName;   
  62.     }   
  63.   
  64. }  

說明:實現了HttpSessionBindingListener接口,接口中共定義了兩個方法:valueBound()和valueUnbound(),分別對應數據綁定,和取消綁定兩個事件。
所謂對session進行數據綁定,就是調用session.setAttribute()把HttpSessionBindingListener保存進session中。
HttpSessionListener只需要設置到web.xml中就可以監聽整個應用中的所有session。HttpSessionBindingListener必須實例化后放入某一個session中,才可以進行監聽。

從監聽范圍上比較,HttpSessionListener設置一次就可以監聽所有session,HttpSessionBindingListener通常都是一對一的。

valueUnbound的觸發條件是以下三種情況:
(1)執行session.invalidate()時。
(2)session超時,自動銷毀時。
(3)執行session.setAttribute("onlineUserListener", "其他對象");或session.removeAttribute("onlineUserListener");將listener從session中刪除時。
因此,只要不將listener從session中刪除,就可以監聽到session的銷毀。

2.jsp調用
(1)login.jsp
Java代碼 復制代碼
  1. <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>   
  2. <%@ page import="com.logcd.listener.OnlineUserBindingListener"%>   
  3. <%   
  4.     String path = request.getContextPath();   
  5.     String basePath = request.getScheme() + "://"  
  6.             + request.getServerName() + ":" + request.getServerPort()   
  7.             + path + "/";   
  8.     String userId = "2000090603";   
  9.     String userName = "LogCN";   
  10.     session.setAttribute(userId,userName);   
  11.     session.setAttribute("onlineUserBindingListener"new OnlineUserBindingListener(userId,userName));   
  12.     response.sendRedirect("counter.jsp");   
  13. %>  

(2)counter.jsp
Java代碼 復制代碼
  1. <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>   
  2. 注冊用戶<span class="salient"><%=((Map)application.getAttribute("onlineUserList")).size()%> </span> 人  

三、RequestDispatcher
     RequestDispatcher是一個Web資源的包裝器,可以用來把當前request傳遞到該資源,或者把新的資源包括到當前響應中。RequestDispatcher接口中定義了兩個方法:include/forward。
      由于<jsp:include>只能指定固定的jsp文件名,不能動態指定jsp文件名。需要把<jsp:include>翻譯為Java code – RequestDispatcher.include();
用法:
<% request.getRequestDispatcher(filename).include(request, response); />
     RequestDispatcher.forward()方法將當前的request和response重定向到該RequestDispacher指定的資源。只有在尚未向客戶端輸出響應時才可以調用forward()方法,如果頁面緩存不為空,在重定向前將自動清除緩存。否則將拋出一個IllegalStateException異常。
      JSP中的三種頁面跳轉方式:
1. response.sendRedirect();
2. response.setHeader("location","");
3. <jsp:forward page="" />
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
日韩国产在线不卡视频| 日韩中文在线视频| 中文字幕人成乱码在线观看| 中文字幕日韩精品在线| 亚洲黄页一区| 日韩视频免费直播| 日韩欧美一级精品久久| 在线观看免费国产小视频| 中文字幕 乱码 中文乱码91| 91精品在线观| 欧美日韩视频在线| 欧美在线日韩精品| www.三级.com| 天天综合日日夜夜精品| 久久久91精品| 日本精品专区| 国产拍揄自揄精品视频麻豆| 一区二区三区精品在线| 日韩三级在线播放| a视频免费在线观看| 国产黄色在线观看| 精品欧美久久久| 视频一区三区| 综合激情一区| 久久久精品福利| 中文精品电影| 精品国自产在线观看| 二区中文字幕| 欧美日韩在线综合| 日韩免费视频一区二区视频在线观看| 999在线视频| 韩国av一区二区| 欧美人妻一区二区三区| 精品日韩99亚洲| 日韩黄色在线播放| 久久91精品久久久久久秒播| 极品久久久久久| 亚洲三级免费看| 国产男女av| 国产免费久久久| 日韩视频免费直播| 欧美日韩综合高清一区二区| 日韩.欧美.亚洲| 日韩欧美中文字幕在线视频| 国产精久久久久| 亚洲制服丝袜一区| 日韩激情一区| 最近中文字幕第一页| 色猫猫国产区一区二在线视频| 国产中文在线观看| 精品中文字幕在线播放| 欧美日韩中文字幕| 精品久久九九| 精品在线网站观看| 国产www在线观看| 欧美一卡2卡3卡4卡| 日韩欧美国产高清| 日韩免费视频一区| 亚洲国内精品视频| 国产乱国产乱300精品| 中文字幕亚洲欧美| 91精品在线免费观看| 午夜精品免费视频| 免费高清视频日韩| av中文在线资源| 国产不卡在线| 精品中文在线| 日韩手机在线观看视频| 日韩av一区二| 在线一区免费| 91精品国产自产观看在线 | 国产在线日韩精品| 精品国产1区2区3区| 欧美一级日韩不卡播放免费| 欧美日韩精品区| 日韩欧美中文字幕在线视频| 亚洲va中文字幕| 国产 中文 字幕 日韩 在线| 在线资源av| 一区视频在线播放| 欧美 中文字幕| 日韩欧美国产三级| 国产99对白在线播放| 亚洲欧美小说国产图片| 91精品国产调教在线观看| 欧美激情一区二区三区在线| 欧美 中文字幕| 视频一区二区不卡| 亚洲国产欧美91| 国产成人精品免费在线| 一区二区视频在线观看免费的| 亚洲成av人片一区二区密柚| 欧美日韩国产中文精品字幕自在自线| h片精品在线观看| 亚洲一区日韩精品中文字幕| 欧美日韩在线精品成人综合网| 午夜影院在线观看欧美| 欧美一级久久久久久久久大| 欧美日韩国产123区| 亚洲免费看av| 色99中文字幕| 亚洲福利一区二区三区| 亚洲国产欧美久久| 亚洲免费专区| 一区二区精品区| 国产欧美日韩中文字幕| 午夜精品一区二区三区视频免费看| 日韩中文字幕在线一区| 国产福利在线播放| 中文字幕精品一区二| 亚洲欧洲三级| 欧美日韩精品在线| 国产久卡久卡久卡久卡视频精品| 99国产成 人 综合 亚洲欧美| av免费在线不卡| 欧美中文字幕精品| 日韩在线视频中文字幕| 欧美在线中文字幕| 久久99久久久久久久噜噜| 91精品免费在线观看| 一本一道久久a久久精品综合蜜臀| 日韩色在线观看| 国产欧美日韩精品在线| 91精品国产全国免费观看| 欧美日韩激情一区| 国产不卡在线观看视频| 国产中文在线观看| 国产一区日韩| 91精品国产高清久久久久久| 欧美中日韩在线| 亚洲高清在线免费| 在线日韩精品视频| 国产欧美日韩高清| 日韩欧美字幕| 欧美日韩综合在线免费观看| 日韩免费高清一区二区| 国产视频一区二| 欧美一级一级性生活免费录像| 91久久精品视频| 综合图区亚洲白拍在线| 亚洲区中文字幕| 欧美在线日韩在线| 午夜亚洲福利| 国产网站av| 日韩三级高清在线| 国产www.大片在线| 欧美一级欧美三级在线观看| 欧美日韩综合高清一区二区| 精品久久久精品| 日韩精品不卡一区二区| 欧美高清一级片在线| 中文官网资源新版中文第二页在线观看| 日韩三级精品| 中文字幕欧美日韩在线不卡| 日韩视频中文字幕| 中文字幕视频一区二区三区久| 国产黄在线播放| 国产欧美日韩最新| 91精品综合久久久久久| 精品午夜av| 亚洲丝袜一区| 中文字幕高清在线播放| 国产中文伊人| 日本a级黄色| 成年人黄国产| 成人久久在线| 九色蝌蚪视频在线| 91一区二区| 在线观看一区| 欧美日韩91| 日韩精品在线第一页| 欧美日韩一二三四| 国产欧美自拍一区| 日韩精品视频在线播放| 中文字幕精品www乱入免费视频| 久久婷婷亚洲| 日韩精品视频在线观看免费| 亚洲人成欧美中文字幕| 精品一二线国产| 在线不卡一区二区| 日本国产在线视频| 日韩视频一区| 一区二区三区在线免费| www.精品av.com| 国产在线观看黄色| 最近高清中文在线字幕在线观看| 久久婷婷亚洲| 国产福利一区在线观看| 一区二区三区在线不卡| 日韩美女中文字幕| 人妻一区二区三区免费| 在线看av的网址| 亚洲欧美日本另类| 国产成人精品av久久| 先锋男人资源站| 亚洲国产欧美日韩精品| 日本一欧美一欧美一亚洲视频| 日韩欧美亚洲国产| 一区三区二区视频| 日韩黄色在线播放| 欧美日韩亚洲国产综合| 国产欧美 在线欧美| 日本亚洲视频在线| 中文字幕在线国产| 日韩欧美国产黄色| 在线中文免费视频| 欧美中文字幕第一页| 日韩欧美在线1卡| 粉嫩喷白浆久久| 欧美日韩高清在线播放| 国产一二三区精品视频| 91精品国产综合久久香蕉最新版| 成人ww免费完整版在线观看| 亚洲成av人片在线| 在线视频亚洲| 在线欧美一级视频| 午夜国产视频 | 色偷偷一区二区三区| 国产欧美日韩91| 亚洲电影中文字幕在线观看| 日韩精品免费视频一区二区三区| 亚洲国产午夜精品| 精品国产欧美日韩不卡在线观看| 中文字幕欧美日韩在线| 一区免费视频| 精品在线99| 久久精品99国产国产精| 欧美乱大交xxxxx免费| 又黄又www的网站| 亚洲乱码在线观看| 亚洲 国产 欧美 日韩| 欧美日韩国产在线看| 国产欧美日韩在线视频| 日韩欧美国产一二三区| 国产91欧美| 色综合天天性综合| 中文字幕五月欧美| 欧美日韩精品欧美日韩精品| 亚洲高清不卡一区| 欧美日韩精品区| 国产视频2区| 亚洲成年人影院在线| 一二三区精品视频| 欧美日韩乱国产| 亚洲一二三不卡| 日韩午夜黄色| 精品久久久视频| 欧美中文字幕精品| 亚洲视频一二三四| 亚洲午夜av| 欧美日韩国产在线看| 白嫩少妇丰满一区二区| 黄色片免费看| 亚洲欧美中文字幕在线一区| 日韩视频不卡中文| 欧美日韩综合不卡| 欧美国产中文| 国产丝袜欧美中文另类| 日韩精品视频在线观看视频| 国产一卡2卡3卡免费网站| 日韩欧美在线网址| 久草亚洲一区| 欧美日韩国产一中文字不卡| 亚洲中文字幕一区| 日韩中文字幕在线一区| 国产传媒久久久| 亚洲小说春色综合另类电影| 不卡一区二区三区视频| 国产不卡一区| 影音先锋中文字幕在线观看| 精品国产91乱高清在线观看| 国产一二三区精品视频| 91av久久久| 久久麻豆视频| 欧美国产一级| 亚洲日本精品视频| 国产欧美久久久精品免费| 日韩欧美一二三| av影视在线看| 日韩欧美亚洲视频| 国产日韩av高清| 亚洲.国产.中文慕字在线| 日本亚洲视频在线| 99国产一区| 91精品国产自产观看在线| 精品av中文字幕在线毛片| 日韩 欧美 中文| 中文字幕在线播放一区| 蜜桃视频中文字幕| 国产中文在线| 欧美日中文字幕| 亚洲三级网站| 日韩欧美在线1卡| 日韩欧美色综合网站| 久久久久蜜桃| 精品区一区二区| 激情综合色综合久久| 一区二区欧美国产| 日韩精品 欧美| 国产视频二区| 91久久中文| 亚洲日本欧美日韩高观看| 国产91欧美| 国产成人精品免费久久久久| 欧美日韩综合不卡| 国产视频97| 国产欧美自拍一区| 亚洲电影中文字幕在线观看| 日韩精品视频在线观看视频| 91精品久久久久久久久| 欧美在线视频第一页| 欧美日韩尤物久久| 欧美日韩高清不卡| wwwav91com| 欧美日韩国产页| 亚洲三级中文字幕| 国产欧美日韩在线观看| 日韩不卡在线播放| 日韩欧美国产1| 拍真实国产伦偷精品| 日韩精品在线观| 日韩在线 中文字幕| 日韩精品视频中文字幕| 亚洲一区中文字幕在线观看| 先锋男人资源站| 亚洲成av人片在线| 亚州福利视频| 久久久精品欧美| 亚洲人线精品午夜| 最近中文字幕在线中文视频| 欧美日韩成人一区| 中文字幕中文字幕精品| 欧美 日韩 综合| 精品久久久视频| 日韩精品福利一区二区三区| 日韩欧美成人一区二区三区| 欧美激情一区二区三区在线| 91精选在线| 国产一级免费在线观看| 亚洲美女视频一区| 日韩精品视频免费在线观看| 国产资源在线观看入口av| 精品欧美日韩在线| 欧美日韩国产影片| 一区二区三区高清在线| 亚洲第一网中文字幕| 中文在线а√在线8| 成人一区二区不卡免费| 亚洲中文字幕一区| 欧美国产一级片| 色国产在线视频| 亚洲高清精品视频| 成人一区二区不卡免费| 精品免费久久久| 91精品999| 中文字幕久久av| 一区二区三区在线播放视频| 一级国产黄色片| 在线观看精品国产| 最近中文字幕第一页| 日韩在线视频精品| 青青国产91久久久久久| 欧美日韩色综合| 国产福利精品导航| 欧美一卡2卡三卡4卡5免费| 亚洲专区一二三| 91麻豆精品国产91久久久使用方法| 日韩www在线| 精品激情国产视频| 亚洲黄色一区二区| 精品午夜av| 久久久91精品国产| 不卡在线视频| 日韩欧美色综合网站| 一区视频在线播放| 免费看ww视频网站入口| 一区免费视频| 欧美中文字幕在线视频| 99视频一区| 天天摸日日摸狠狠添| 中文字幕欧美日韩| 国产95在线|亚洲| www.中文字幕在线| 日本啊v在线| 91精品国产免费| 欧美亚洲国产激情| 国产123在线| 国产一区久久久| 精品av中文字幕在线毛片| 欧美日韩中文另类| 日韩精品不卡一区二区| 国产欧美中文字幕| 国产婷婷色一区二区三区在线| 免费网站看黄yyy222| 91久久精品国产| 精品视频—区二区三区免费| 国产激情在线| 日韩中文字幕精品视频| 精品欧美久久久| 国产卡1卡2卡三卡在线|