java 统计在线人数

通过web.xml配置session的监听,每当监听到一个新的session,则计数加1。

反之当程序失去一个session则计数减1.

 

OnlineCounter类,这个类需要实现HttpSessionListener, HttpSessionAttributeListener, HttpSessionBindingListener三个接口:

/**
 * OnlineCounter.java
 *
 * Copyright 2008. All Rights Reserved.
 
*/
package com.cosmow.online;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

/**
 * TODO OnlineCounter 记录在线人数
 * 
 * Revision History
 * 
 * 2008-8-11,Cosmo,created it
 
*/
public class OnlineCounter extends HttpServlet implements HttpSessionListener,
        HttpSessionAttributeListener, HttpSessionBindingListener {

    
private static final long serialVersionUID = 1L;

    
private static int sessionCounter = 0;
    
private static int attributeCounter = 0;

    
public void sessionCreated(HttpSessionEvent event) {
        sessionCounter
++;
        System.out.println(
"session created");
    }

    
public void sessionDestroyed(HttpSessionEvent event) {
        sessionCounter
--;
        System.out.println(
"session destroied");
    }

    
public void attributeAdded(HttpSessionBindingEvent event) {
        attributeCounter
++;
        System.out.println(
"attribute added");
    }

    
public void attributeRemoved(HttpSessionBindingEvent event) {
        attributeCounter
--;
        System.out.println(
"attribute removed");
    }

    
public void attributeReplaced(HttpSessionBindingEvent event) {
        System.out.println(event.getName() 
+ " replaced");
    }

    
public void valueBound(HttpSessionBindingEvent event) {
        System.out.println(event.getName() 
+ " bound " + event.getValue());
    }

    
public void valueUnbound(HttpSessionBindingEvent event) {
        System.out.println(event.getName() 
+ " unbound " + event.getValue());
    }

    
// 获取当前在线人数
    public static int getOnlineSession() {
        
return sessionCounter;
    }
    
    
public static int getOnlineAttribute() { 
        
return attributeCounter;
    }

}



web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>

    
<listener>
        
<listener-class>com.cosmow.online.OnlineCounter</listener-class>
    
</listener>

    
<welcome-file-list>
        
<welcome-file>index.jsp</welcome-file>
    
</welcome-file-list>
</web-app>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值