`
yongtree
  • 浏览: 233937 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

一个简单统计在线用户信息的工具类(更新中)

阅读更多
很多的论坛上,我们有时候不仅仅能看到在线的人数以及登录的人数,而且还能能知道哪些用户在线,哪些用户不在线,再加上一些即时通讯工具的集成支持,这大大的方便了用户之间的相互交流,也方便了运行商对网站每天访问情况的统计以及对网站人群的统计。在Java中怎样来实现这种统计呢?方法有很多,可以统计利用session和Applaction的结合来进行统计,也可以用实时修改数据库的状态来进行实现,自己可以根据功能的强弱自己来自行设计,一般来说,我们都会使用监听器来进行实现,自己写一个监听器要实现HttpSessionListener,然后实现其方法就行了,在相应的方法中实现不同的功能。以下是一个简单的监听器:
<!----><!---->
package mj.util;

import java.util.Enumeration;
import java.util.Hashtable;

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

/**
 * 实现在线用户统计的监听器
 
 @author yongtree
 */
public class SessionListener implements HttpSessionListener {

  private static Hashtable htSessionUser = new Hashtable();

  /**
   * 构造函数
   */
  public SessionListener() {
  }

  /**
   @param se -
   *            HttpSessionEvent
   */
  public void sessionCreated(HttpSessionEvent se) {

    htSessionUser.put(se.getSession().getId()"");

  }

  /**
   * @如果登录之后,请调用此方法。
   @param sessionId
   @param obj
   *            一般为登陆用户ID,或者登陆用户对象。此处放对象较好。
   * @特别说明。如果用此形式,同一用户,同一时间多次登陆,进行判断,比较困难。最后在加一个HashTable,以账号为主键,其它相关信息为value
   */
  public static void userLogin(String sessionId, Object obj) {
    htSessionUser.put(sessionId, obj);
  }

  /**
   @param se -
   *            HttpSessionEvent
   */
  public void sessionDestroyed(HttpSessionEvent se) {
    htSessionUser.remove(se.getSession().getId());
    se.getSession().invalidate();

  }

  /**
   @return Hashtable,该Hashtable的KEY含有所有会话的ID,如果该用户登录,则VALUE含有该用户的id。
   */
  public static Hashtable getSessionUser() {
    return htSessionUser;
  }

  /**
   @return int,访问当前站点的会话数。
   */
  public static int getSessionCount() {
    return htSessionUser.size();
  }

  /**
   @return int,访问当前站点的登录会话数。
   */
  public static int getLoginSessionCount() {
    Enumeration em = htSessionUser.elements();
    int i = 0;
    while (em.hasMoreElements()) {
      String sValue = (Stringem.nextElement();
      if (!sValue.equals(""))
        i++;
    }
    return i;
  }
}

由于时间的匆忙,很多的功能还没有实现,我会在以后的时间里继续的完善,使其功能更加的全面和更具有通用性。(更新中)

分享到:
评论

相关推荐

    C#代码统计工具

    标题中的“C#代码统计工具”是一个专门用于分析C#项目代码量的应用程序。它允许用户通过指定C#项目的根目录,快速获取项目中的代码行数,包括空行、注释行以及实际的可执行代码行。这对于项目管理和团队协作至关重要...

    Jfreechart包和工具类

    3. **统计图类型工具类**: 提到的“定义统计图类型的工具类”可能是开发人员为了简化操作或者增强JFreeChart功能而编写的辅助类。这类工具通常包含静态方法,可以快速设置图表类型、数据源转换或自定义样式。比如,...

    字数统计工具(vb制作)

    5. 结果展示:统计结果可以显示在Label控件或者另一个TextBox控件中,通过设置其Text属性更新显示内容。 6. 错误处理:为了提高程序的健壮性,应考虑加入错误处理机制,比如检查用户是否输入了文本,防止因空文本而...

    一个统计代码行数的小工具

    标题中的“一个统计代码行数的小工具”指的是一个专门用于计算源代码文件中代码行数的应用程序。这类工具在软件开发过程中非常有用,因为它能够帮助开发者量化工作量、跟踪项目进度,以及进行代码质量分析。它能处理...

    代码行数统计工具

    在Winform应用中,代码行数统计工具通常会作为一个独立的窗体程序,用户可以通过简单的操作获取项目的代码统计信息。 代码行数统计工具有多种实现方式,一种常见的方法是遍历项目文件夹,识别和读取C#源代码文件(....

    Mac 代码统计工具

    `CodeCount`可能就是这样的命令行工具,用户可以通过终端输入特定的命令,批量处理大量代码文件,或者将其集成到构建脚本中,自动报告代码统计信息。例如,用户可以编写一个简单的shell脚本,遍历整个项目目录并调用...

    自写的一个简易统计图统计图控件

    这个简易统计图控件就是这样的一个例子,它是由开发者用C#语言编写的,旨在为Windows Forms或WPF应用提供一个直观、易用的图表展示功能。下面我们将详细探讨这个控件的相关知识点。 首先,C#是一种面向对象的编程...

    eclipse统计代码工具

    "eclipse统计代码工具"就是这样一个插件,专门用于在Eclipse环境中进行代码统计。 该插件的安装非常简单,只需要将它放入到Eclipse的`plugins`目录下。Eclipse的`plugins`目录通常位于Eclipse安装目录的根目录下,...

    九戒站长统计营销广告推送工具CNZZ、百度统计、51LA通用版

    1. **站长统计工具**:这是一个专门为网站管理员设计的工具,帮助他们跟踪和分析网站流量、用户行为以及广告效果。在这个标题中提到的“九戒”工具,具有兼容性,可以与多个主流的站长统计服务如CNZZ(中国万网统计...

    matlab数理统计工具箱

    MATLAB数理统计工具箱是MATLAB环境中的一个重要扩展,为用户提供了一系列强大的统计分析功能。这个工具箱包含了大量的函数、应用程序以及示例,用于处理各种数理统计问题,包括数据探索、假设检验、回归分析、时间...

    ios-图表工具类 更新版.zip

    本次更新的"ios-图表工具类 更新版.zip"引入了一个强大的图表库——JHChart,尤其值得关注的是,它新增了圆饼图功能,并且加入了动画效果,使得数据的呈现更加生动和吸引人。开发者可以通过GitHub地址获取到最新的源...

    代码统计工具(linecount3.6.3)

    今天我们将聚焦于一个名为“LineCount3.6.3”的代码统计工具,通过对其功能、使用方法以及局限性的深度探讨,来全面理解这个工具的价值。 LineCount是一款轻量级的代码统计工具,其主要功能是对指定的文件或整个...

    统计学习工具箱

    "统计学习工具箱"是一个集合了多种常用统计学习算法的资源库,主要服务于数据分析和机器学习领域的专业人士。这个工具箱提供了丰富的代码实现,方便用户理解和应用各种统计学习方法。下面,我们将深入探讨其中的一些...

    代码行数统计工具,绿色软件,无需安装

    代码行数统计工具能够快速、准确地计算出一个项目或文件中的源代码行数,包括空行、注释行以及实际的代码行。 该工具名为"SourceCounter",很可能是一个命令行工具或者具有简单图形界面的应用。它可能支持多种编程...

    代码行数统计工具kazoeca

    在软件开发过程中,衡量代码工作量、项目进度以及复杂性的一个常用指标就是代码行数。而kazoeca,这是一款专为开发者设计的代码行数统计工具,它能有效地帮助我们对Java、C、ASP等项目的代码修改量进行精确统计。...

    代码行统计工具(CountLines)

    在软件开发过程中,代码行数(LOC,Lines of Code)常被用来作为衡量项目规模和工作量的一个重要指标。为了方便开发者对Java代码进行统计分析,出现了名为"代码行统计工具(CountLines)"的实用工具。这款工具以其简洁...

    .net 代码行数统计工具

    在给定的压缩包文件中,"代码行统计工具"很可能是一个实现这些功能的应用程序或库。使用时,用户需要按照工具提供的指南操作,可能包括选择待分析的代码目录、设置统计选项,然后工具会自动执行统计并显示结果。这些...

Global site tag (gtag.js) - Google Analytics