亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

JSP如何統(tǒng)計在線人數(shù)和注冊人數(shù)

2024-09-05 00:23:38
字體:
供稿:網(wǎng)友
一、統(tǒng)計在線人數(shù)
1.監(jiān)聽器
Java代碼 復(fù)制代碼
  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. }   

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

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

二、統(tǒng)計注冊人數(shù)
1.監(jiān)聽器
Java代碼 復(fù)制代碼
  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. }  

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

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

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

2.jsp調(diào)用
(1)login.jsp
Java代碼 復(fù)制代碼
  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代碼 復(fù)制代碼
  1. <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>   
  2. 注冊用戶<span class="salient"><%=((Map)application.getAttribute("onlineUserList")).size()%> </span> 人  

三、RequestDispatcher
     RequestDispatcher是一個Web資源的包裝器,可以用來把當(dāng)前request傳遞到該資源,或者把新的資源包括到當(dāng)前響應(yīng)中。RequestDispatcher接口中定義了兩個方法:include/forward。
      由于<jsp:include>只能指定固定的jsp文件名,不能動態(tài)指定jsp文件名。需要把<jsp:include>翻譯為Java code – RequestDispatcher.include();
用法:
<% request.getRequestDispatcher(filename).include(request, response); />
     RequestDispatcher.forward()方法將當(dāng)前的request和response重定向到該RequestDispacher指定的資源。只有在尚未向客戶端輸出響應(yīng)時才可以調(diào)用forward()方法,如果頁面緩存不為空,在重定向前將自動清除緩存。否則將拋出一個IllegalStateException異常。
      JSP中的三種頁面跳轉(zhuǎn)方式:
1. response.sendRedirect();
2. response.setHeader("location","");
3. <jsp:forward page="" />
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产不卡视频一区| 国产欧美 在线欧美| 成人免费视频国产免费观看| 18+激情视频在线| 激情校园亚洲图片| 日韩欧美视频专区| 亚洲精品国产精| 中国一级免费毛片| 中文字幕一区二区三区有限公司| 天天干天天干天天干天天干天天干| 日韩一区二区三区免费| 欧美久久综合网| 国产剧情av麻豆香蕉精品| 一本一本久久a久久精品综合麻豆| 91九色蝌蚪91por成人| www.丝袜精品| 黄色污污在线观看| av动漫在线免费观看| 无码精品人妻一区二区三区影院| 国产激情视频一区二区三区欧美| 激情亚洲色图| 福利一区三区| 欧美日韩国产首页| 拍拍拍在线观看视频免费| 亚洲91在线| 97超碰在线公开在线看免费| 91国产视频在线| 男男做爰猛烈叫床爽爽小说| 一级片免费在线观看视频| 少妇高潮一区二区三区| wwwav91| 欧美黑人粗大| 欧美日韩一区二区三区免费| 四虎精品一区二区| 中文官网资源新版中文第二页在线观看| 18成人在线| 亚洲xxxx做受欧美| 国产在线视频99| 精品亚洲成a人在线观看| 杨幂毛片午夜性生毛片| 色哦色哦哦色天天综合| 忘忧草在线影院两性视频| 成年网站在线| 五月婷婷开心网| 激情欧美一区二区| 尤物在线视频| 51视频国产精品一区二区| 看电影就来5566av视频在线播放| 欧美色精品天天在线观看视频| 日韩免费一区二区三区| 性欧美精品xxxx| 亚洲欧美bt| 九色成人免费视频| 污网站在线看| 亚洲一区二区三区四区在线播放| 成人影院在线看| 国产成人精品123区免费视频| 国产欧美日韩精品高清二区综合区| 亚洲宅男一区| 国产www网站| 一本大道香蕉8中文在线视频| 香蕉大人久久国产成人av| 综合国产视频| 缅甸午夜性猛交xxxx| 日韩高清不卡av| 五月天丁香婷| 国内精久久久久久久久久人| 亚洲国产二区| 91久久久久久久久久久久久| 欧美三级电影一区| 亚洲第一网站| 成人在线直播| 成人自拍爱视频| 污污影院在线观看| 国产传媒欧美日韩| 精品人妻久久久久一区二区三区| 日韩成人精品视频| 中文字幕高清视频| 国产精品 欧美激情| 中文字幕超碰在线| 日韩一区二区三区在线播放| 四季av一区二区三区| 亚洲久草视频| 男人天堂新网址| 久久精品午夜福利| 亚洲精品一区二区三区影院忠贞| 国产精品久久久久久久| 久久精品国产2020观看福利| 毛片在线免费视频| 精品久久亚洲一级α| 欧美另类精品xxxx孕妇| 日本一区二区三区四区| 在线观看www91| 国产又大又粗又爽的毛片| 都市激情亚洲一区| 欧美二区三区91| 成人性视频免费看| 1204国产成人精品视频| 日本中文字幕在线不卡| 国产精品30p| 精品一区二区三区自拍图片区| 97超碰人人模人人人爽人人爱| 无码人妻丰满熟妇区毛片18| 亚洲人永久免费| 国产日韩视频在线观看| 日本久久伊人| 日韩在线观看免费高清完整版| 国产毛片一区二区三区va在线| 欧美日韩一本| 日韩在线观看一区二区| 18在线观看的| 九九久久久久午夜精选| 国产精品中文字幕制服诱惑| 国产乱人伦偷精品视频免下载| 黑色丝袜福利片av久久| 国内精品中文字幕| 国产精品日韩欧美一区| 丁香网亚洲国际| 欧美色图天堂网| av午夜一区麻豆| 国产短剧电视剧免费观看| 日韩av电影在线播放| 午夜私人影院在线观看| 日本三级韩国三级欧美三级| 性欧美极品xxxx欧美一区二区| 偷拍与自拍一区| 亚洲自拍一区在线观看| 亚洲午夜免费电影| www.青青青| 波兰性xxxxx极品hd| 四虎4hu影库永久地址| 成年人免费看的视频| 亚洲精品国产第一综合99久久| 日本一区二区视频在线播放| 中文字幕在线观看的网站| 97人妻精品一区二区三区视频| 欧美在线亚洲| aaaaaa毛片| 性の欲びの女javhd| 日本在线视频一区二区三区| 久久本道综合色狠狠五月| 久久久精品性| 亚洲手机成人高清视频| 日韩一区日韩二区| 小草在线视频免费播放| 黄色三级中文字幕| 欧美群妇大交群中文字幕| 欧美一区二区日韩| 亚洲黄色影片| 九九九热视频| 天天操天天擦| 三级全黄做爰视频| 五月天亚洲精品| 国产精品不卡av| 午夜精品美女自拍福到在线| 欧美三级黄美女| 亚洲人成精品久久久久久| 97超碰在线人人| 精品黑人一区二区三区观看时间| 国产在线久久久| 成人免费毛片网| 亚洲精品字幕在线观看| 国产成人自拍在线| 欧美影院在线| 亚洲最大福利视频网| 亚洲国产精品自拍视频| 欧美高清视频在线观看mv| 视频一区中文字幕精品| 国产精品久久久久久久7电影| 伊人网中文字幕| 久久精品国产清高在天天线| 致1999电视剧免费观看策驰影院| 久久免费大视频| 蜜臀尤物一区二区三区直播| 国模私拍一区二区国模曼安| 日韩中文字幕在线观看| 久热精品视频在线观看一区| 黄色福利在线观看| 8888四色奇米在线观看| 国产成人综合自拍| 精品国产网站地址| 99久免费精品视频在线观78| 日本精品视频在线观看| yw193.com尤物在线| 国产一区二区三区在线| 欧美一区二区公司| 91在线观看免费高清完整版在线观看| 粗暴91大变态调教| 一区二区三区无码高清视频| 亚洲在线视频播放| 在线观看久久久久久| 韩国成人在线| 114国产精品久久免费观看| 久久久久人妻一区精品色欧美| 欧美成人国产va精品日本一级| 日本www在线视频| 亚洲欧美日韩网| 91性高湖久久久久久久久_久久99| 国产超级va在线视频| 久久久国产成人| 无码人妻丰满熟妇啪啪网站| 天天揉久久久久亚洲精品| 在线一区二区三区视频| 九九视频免费看| 91精品啪在线观看国产| 全国男人的天堂天堂网| 在线免费不卡电影| 色婷婷精品久久二区二区蜜臀av| 国产精品精品久久久久久| 海角社区69精品视频| 精品一二三区| 免费大片在线观看| 综合伊思人在钱三区| 久久精品亚洲麻豆av一区二区| 精品国产18久久久久久洗澡| av大大超碰在线| 777免费视频| 天堂网在线观看国产精品| 成人性视频欧美一区二区三区| 中文字字幕在线中文乱码| 久久五月婷婷丁香社区| 日夜操在线视频| 91视频免费播放| 中文字幕手机在线观看| 国产伦精品一区二区三区高清版| 少妇高潮久久久| 国产一二三在线视频| 日韩精品视频一区二区| 亚洲图片在线播放| 国产亚洲成人av| 九九热在线观看视频| 欧洲一区二区三区免费视频| 黑人精品视频| 91色p视频在线| 日韩免费av片在线观看| 精精国产xxxx视频在线中文版| 天堂中文在线观看| www.91视频.com| 中文字幕伊人| 国产成人毛毛毛片| 性折磨bdsm欧美激情另类| 亚洲丝袜一区在线| 中文字幕亚洲综合久久筱田步美| 色哟哟中文字幕| 户外露出精品视频国产| 精东影业在线观看| 精品国产三级a在线观看| 国产成人三级视频| 欧美喷水视频| 99精品999| 国产电影精品久久禁18| 中文字幕一区图| 成人c视频免费高清在线观看| 日韩av三区| 4444欧美成人kkkk| 韩国三级视频在线观看| 欧美巨乳在线观看| 成人a在线视频免费观看| 一道本在线观看视频| 日韩中文字幕在线精品| 欧美优质美女网站| 蜜臀91精品国产高清在线观看| 亚洲成色www.777999| 欧美69精品久久久久久不卡| 国产夫妻性爱视频| 国产精一品亚洲二区在线视频| 老司机午夜免费福利视频| 久久久久久草| 中文字幕在线免费专区| 九九视频免费在线观看| 欧美xxxxbb| 日韩成人在线资源| 亚洲国产成人精品一区二区三区| 精品视频久久久久久久| 日本xxxx高清色视频| 中文字幕av不卡在线| 99久久精品国产色欲| 日韩欧美视频在线| 成人在线视频你懂的| 亚洲人成电影在在线观看网色| 中文字幕在线日本| 欧美在线日韩精品| 欧美激情电影| 欧美国产日韩一区二区| 性欧美精品一区二区三区在线播放| 国产精品嫩草影院av蜜臀| 亚洲国产欧美不卡在线观看| 欧美日韩一区国产| 欧美日韩色视频| 久久国产精品免费精品3p| 色天天久久综合婷婷女18| 日韩国产在线观看一区| 成人h视频在线观看| 色版视频在线观看| www.热久久| 色欲无码人妻久久精品| 视频国产一区二区| 性欧美videos另类hd| 99蜜月精品久久91| 中文字幕一二三四区| 午夜视频在线观看一区二区三区| 欧美男男video| 国产麻豆电影在线观看| 久久综合给合| 久久久免费观看| 久久久人人爽| 久久精品国产99久久| 中文字幕免费精品| 国产白丝一区二区三区| 久久视频免费在线观看| 日本一区二区三区在线播放| 久久久久亚洲AV| 国产拍欧美日韩视频二区| 欧美一级片在线| 成人免费看黄网站| 亚洲国产aⅴ精品一区二区| 久久不射网站| 四虎在线视频免费观看| 久久影院中文字幕| 亚洲欧美电影| 伊人成人在线视频| 中文精品无码中文字幕无码专区| 精品国模在线视频| 久久久久国产免费免费| 中文字幕二三区不卡| 亚洲同性gay激情无套| 97视频免费| 一本久久综合亚洲鲁鲁|