`
liu4626846
  • 浏览: 3190 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

javaweb 在线人数统计

阅读更多
package org.login.actions;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import   java.util.List; 
import   java.util.ArrayList; 

import javax.servlet.http.HttpSession;

/** 
  *   计算在线人数,说明: 
  * 
  *   在访问页面放入: 
  *   OnlineCounter.addUser(Object   object) 
  *   一般用ip来作为object的传入值,统计登陆在线人数,也可用用户名 
  *   来作为object传入值。 
  * 
  *   调用显示在线人数 
  *   OnlineCounter.getOnlineCount()   * 
  * 
  *   返回一个List,里面以String[]形式存放传入的object值和最后访问页面时间。 
  *   OnlineCounter.getOnline() 
  *   
  */
@SuppressWarnings("unused")
public   class   OnlineCounter   { 
    private   static   List<String[]>   list   =   new   ArrayList<String[]>(); 

    private   OnlineCounter()   { 
    } 
    public   static   void   addUser(Object   object)   {
        //得到用户当前访问时间
    	SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd   HH:mm:ss");
    	String   nowtime   = sm.format( new Date());
        //Str数组用来存放用户得ip和访问时间 
        String[]   str   =   new   String[2]; 
        str[0]   =   object.toString(); 
        str[1]   =   nowtime; 

        //temp数组用来临时存放从list里面取出的用户ip和访问时间 
        String[]   temp   =   new   String[2]; 

        //循环list 
        for   (int   i   =   list.size()-1;   i   >=   0;   i--)   { 
            temp   =   (String[])list.get(i); 
            //如果从list里面取出的用户ip和str里面存放的ip相同,则更新访问时间 
            if(temp[0].equals(str[0]))   { 
                list.set(i,str); 
                return; 
            } 
            //如果用户超过5分钟没有访问,则认为不在线 
            if(subTime(nowtime,temp[1])   >   60)   { 
                list.remove(i); 
        }}
        //添加一个新的在线用户 
        list.add(str); 
        //释放资源 
        str   =   null;temp   =   null; 
    } 
    public   static   int   getOnlineCount()   { 
        //返回当前在线人数 
        return   list.size(); 
    } 

    public   static   List<String[]>   getOnline()   { 
        return   list; 
    } 

    private static long getLongDate(String date){
    	date = date.replace("-", "").replace(" ", "").replace(":", "");
    		
		return Long.parseLong(date);
    	
    }

    private   static   long   subTime(String   src,String   des)   {
        int   n   =   0; 
        java.util.Calendar   ca   =   java.util.Calendar.getInstance(); 
        long   time1   = getLongDate(src)-getLongDate(des); 
        return   time1; 
    } 

} 

 还有一个问题, 就是在不进行超时功能时 不知道如何解决用户已经退出的问题!

分享到:
评论

相关推荐

    javaweb开发在线人数统计

    Java Web 开发在线人数统计 在线人数统计是 Java Web 开发中一个常见的功能,当一个用户登录后,显示欢迎信息,同时显示出当前在线的总人数和用户名单。当一个用户退出登录或者 Session 超时值发生时,从在线用户...

    Javaweb实现在线人数统计代码实例

    "Javaweb实现在线人数统计代码实例" 本资源主要介绍了Javaweb实现在线人数统计代码实例,通过示例代码详细介绍了在线人数统计的实现过程,对大家的学习或者工作具有一定的参考学习价值。下面是本资源的详细知识点...

    JavaWeb 用session统计在线人数

    在JavaWeb开发中,"用session统计在线人数"是一个常见的需求,主要应用于网站或应用的实时用户活动监控。本文将详细解析如何利用session这一核心技术来实现这个功能。 首先,理解session的基本概念。在Web开发中,...

    JAVAWEB网站在线人数计数器

    这个Servlet负责处理请求,并可能更新服务器端的在线人数统计。 接下来是`OnlineCounterListener.java`,这是一个监听器类,实现了`ServletContextListener`和`HttpSessionListener`接口。这两个监听器在Servlet...

    java web在线人数统计/监听

    Java Web在线人数统计是Web应用程序中常见的需求,用于获取当前网站活跃用户数量。这个功能的实现通常基于HTTP协议的工作机制,特别是对Session的管理和监听。本文将深入探讨如何使用Java Web技术来监听并统计在线...

    Javaweb监听器实例之统计在线人数

    本文将详细介绍如何使用监听器来统计在线用户人数,包括实现的基本思路、具体代码实现以及相关类的结构。 首先,我们要明确监听器的种类,本案例中将使用HttpSessionListener来监听会话的创建和销毁事件,以及...

    JAVAWEB在线聊天系统(基于MVC)

    5. **在线人数统计**:这涉及到服务器端的实时数据处理,可能使用Redis等内存数据库记录在线用户,或者通过分析服务器日志计算在线人数。 【标签】中的关键词“javaweb”表示系统是用Java语言开发的Web应用,这通常...

    判断用户是否在线和实时统计在线人数

    这两个示例可能分别演示了如何实现用户在线判断和在线人数统计的过程,通过代码实例让下载者更好地理解和应用这些技术。在实际项目中,可能还需要考虑并发控制、数据库持久化、分布式环境下的会话共享等问题,以保证...

    java web 统计在线人数

    在Java Web开发中,统计在线人数是一项常见的需求,它能够帮助我们了解网站或应用的实时活跃用户数量。这里我们将深入探讨如何实现这一功能。 首先,我们需要理解“在线人数”的定义。通常,它指的是在一定时间窗口...

    javaweb图书管理系统.rar

    查询用户订单,下载销量榜单,批量导入导出excel,在线人数统计等. 开发工具:Myeclipse,Mysql,Tomcat7.0,支付宝接口 具体: 数据库连接使用C3P0/CBCP 发送邮件:javamail excel上传下载:阿里巴巴的...

    课程设计JavaWeb大作业web电脑考试系统项目源码+数据库.zip

    11. 考试成绩区间人数统计 12. 考试成绩及格率统计 13. 所有展示处支持分页展示 14. 所有搜索处支持模糊查询 15. 学生文件自动打包下载 16. 可以通过.xls表格文件导入学生名单 17. 考试结束倒计时 18. Ajax通知提醒 ...

    JAVAWEB在线聊天系统(基于MVC)_rezip.zip

    5. **在线人数统计**:这涉及到服务器端的实时数据处理,可能使用Redis等内存数据库记录在线用户,或者通过分析服务器日志计算在线人数。 【标签】中的关键词“javaweb”表示系统是用Java语言开发的Web应用,这通常...

    JAVAWEB在线聊天系统(基于MVC)_rezip1.zip

    5. **在线人数统计**:这涉及到服务器端的实时数据处理,可能使用Redis等内存数据库记录在线用户,或者通过分析服务器日志计算在线人数。 【标签】中的关键词“javaweb”表示系统是用Java语言开发的Web应用,这通常...

    用户统计javaWeb

    在本案例中,“用户统计JavaWeb”涉及到了通过Java Web技术实现对用户登录状态的跟踪、在线人数统计等功能。 ### 2. Filter 和 Listener 的作用与实现 #### 2.1 Filter 概述 Filter 是 JavaWeb 中的一种用于处理...

    JavaWeb大作业Web上机考试系统源代码.zip

    JavaWeb大作业Web上机考试系统功能: ...- 管理员查看所有考试的分数段分布、及格率、成绩统计图 - 管理员修改全局配置信息 - 管理员监测系统硬件配置 ...11. 考试成绩区间人数统计 12. 考试成绩及格率统计

    javaweb 聊天室,无数据库...

    1. **在线人数统计**:这是通过跟踪当前登录用户数量来实现的。每当有新用户登录,系统会增加在线人数计数;当用户退出时,计数相应减少。这通常涉及到HTTP Session的使用,Session可以在服务器端记录用户的在线状态...

    JAVAWEB学生管理系统 源码

    6. **报表统计**:提供各类统计报表,如学生人数统计、成绩分布分析,帮助决策者了解教学状况。 7. **通知公告**:发布和管理学校的通知,确保信息的及时传达。 【标签】中的"Java"是指该系统使用Java编程语言,它...

    基于Javaweb的问卷调查系统

    5. **后台数据查询**:系统需提供强大的数据分析能力,能够统计问卷的填写情况,如回答人数、各选项选择比例等,并以图表形式展示,以便于管理员分析和解读数据。 6. **数据库设计**:数据库是存储问卷和用户数据的...

    学习javaweb的学习过程

    - **应用场景**:例如,统计网站访问人数、保存系统级别的配置信息等。 #### 十四、Web应用配置文件详解 - **web.xml**:Web应用的核心配置文件,用于定义应用上下文、Servlet映射、过滤器等。 - **配置项**:可以...

    基于JavaWeb技术的在线考试系统

    介绍 随着信息技术的不断发展和教育模式的创新,在线考试系统在教育领域的...考试统计管理:查看每次考试的总体情况,包括参加考试的人数、缺考人数等 ;分析考试成绩的分布情况,如优秀、良好、及格、不及格的比例 ;

Global site tag (gtag.js) - Google Analytics