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;
}
}
还有一个问题, 就是在不进行超时功能时 不知道如何解决用户已经退出的问题!
分享到:
相关推荐
Java Web 开发在线人数统计 在线人数统计是 Java Web 开发中一个常见的功能,当一个用户登录后,显示欢迎信息,同时显示出当前在线的总人数和用户名单。当一个用户退出登录或者 Session 超时值发生时,从在线用户...
"Javaweb实现在线人数统计代码实例" 本资源主要介绍了Javaweb实现在线人数统计代码实例,通过示例代码详细介绍了在线人数统计的实现过程,对大家的学习或者工作具有一定的参考学习价值。下面是本资源的详细知识点...
在JavaWeb开发中,"用session统计在线人数"是一个常见的需求,主要应用于网站或应用的实时用户活动监控。本文将详细解析如何利用session这一核心技术来实现这个功能。 首先,理解session的基本概念。在Web开发中,...
这个Servlet负责处理请求,并可能更新服务器端的在线人数统计。 接下来是`OnlineCounterListener.java`,这是一个监听器类,实现了`ServletContextListener`和`HttpSessionListener`接口。这两个监听器在Servlet...
Java Web在线人数统计是Web应用程序中常见的需求,用于获取当前网站活跃用户数量。这个功能的实现通常基于HTTP协议的工作机制,特别是对Session的管理和监听。本文将深入探讨如何使用Java Web技术来监听并统计在线...
本文将详细介绍如何使用监听器来统计在线用户人数,包括实现的基本思路、具体代码实现以及相关类的结构。 首先,我们要明确监听器的种类,本案例中将使用HttpSessionListener来监听会话的创建和销毁事件,以及...
5. **在线人数统计**:这涉及到服务器端的实时数据处理,可能使用Redis等内存数据库记录在线用户,或者通过分析服务器日志计算在线人数。 【标签】中的关键词“javaweb”表示系统是用Java语言开发的Web应用,这通常...
这两个示例可能分别演示了如何实现用户在线判断和在线人数统计的过程,通过代码实例让下载者更好地理解和应用这些技术。在实际项目中,可能还需要考虑并发控制、数据库持久化、分布式环境下的会话共享等问题,以保证...
在Java Web开发中,统计在线人数是一项常见的需求,它能够帮助我们了解网站或应用的实时活跃用户数量。这里我们将深入探讨如何实现这一功能。 首先,我们需要理解“在线人数”的定义。通常,它指的是在一定时间窗口...
查询用户订单,下载销量榜单,批量导入导出excel,在线人数统计等. 开发工具:Myeclipse,Mysql,Tomcat7.0,支付宝接口 具体: 数据库连接使用C3P0/CBCP 发送邮件:javamail excel上传下载:阿里巴巴的...
11. 考试成绩区间人数统计 12. 考试成绩及格率统计 13. 所有展示处支持分页展示 14. 所有搜索处支持模糊查询 15. 学生文件自动打包下载 16. 可以通过.xls表格文件导入学生名单 17. 考试结束倒计时 18. Ajax通知提醒 ...
5. **在线人数统计**:这涉及到服务器端的实时数据处理,可能使用Redis等内存数据库记录在线用户,或者通过分析服务器日志计算在线人数。 【标签】中的关键词“javaweb”表示系统是用Java语言开发的Web应用,这通常...
5. **在线人数统计**:这涉及到服务器端的实时数据处理,可能使用Redis等内存数据库记录在线用户,或者通过分析服务器日志计算在线人数。 【标签】中的关键词“javaweb”表示系统是用Java语言开发的Web应用,这通常...
在本案例中,“用户统计JavaWeb”涉及到了通过Java Web技术实现对用户登录状态的跟踪、在线人数统计等功能。 ### 2. Filter 和 Listener 的作用与实现 #### 2.1 Filter 概述 Filter 是 JavaWeb 中的一种用于处理...
JavaWeb大作业Web上机考试系统功能: ...- 管理员查看所有考试的分数段分布、及格率、成绩统计图 - 管理员修改全局配置信息 - 管理员监测系统硬件配置 ...11. 考试成绩区间人数统计 12. 考试成绩及格率统计
1. **在线人数统计**:这是通过跟踪当前登录用户数量来实现的。每当有新用户登录,系统会增加在线人数计数;当用户退出时,计数相应减少。这通常涉及到HTTP Session的使用,Session可以在服务器端记录用户的在线状态...
6. **报表统计**:提供各类统计报表,如学生人数统计、成绩分布分析,帮助决策者了解教学状况。 7. **通知公告**:发布和管理学校的通知,确保信息的及时传达。 【标签】中的"Java"是指该系统使用Java编程语言,它...
5. **后台数据查询**:系统需提供强大的数据分析能力,能够统计问卷的填写情况,如回答人数、各选项选择比例等,并以图表形式展示,以便于管理员分析和解读数据。 6. **数据库设计**:数据库是存储问卷和用户数据的...
- **应用场景**:例如,统计网站访问人数、保存系统级别的配置信息等。 #### 十四、Web应用配置文件详解 - **web.xml**:Web应用的核心配置文件,用于定义应用上下文、Servlet映射、过滤器等。 - **配置项**:可以...
介绍 随着信息技术的不断发展和教育模式的创新,在线考试系统在教育领域的...考试统计管理:查看每次考试的总体情况,包括参加考试的人数、缺考人数等 ;分析考试成绩的分布情况,如优秀、良好、及格、不及格的比例 ;