java统计当前在线数 (转)[@more@]

package com.hnedu.stat;

/**

* 计算在线人数,说明:

*

* 在访问页面放入:

* com.hnedu.stat.OnlineCounter.addUser(object object)

* 一般用ip来作为object的传入值,当然,如果网站统计登陆在线人数,也可用用户名

* 来作为object传入值。

*

* 调用显示在线人数

* com.hnedu.stat.OnlineCounter.getOnlineCount() *

*

* com.hnedu.stat.OnlineCounter.getOnline()

* 返回一个List,里面以String[]形式存放传入的object值和最后访问页面时间。

* by crazyren 2003-08-05 eMail: hotmail.com">c_crazyren@hotmail.com

*/

import Java.util.List;

import java.util.ArrayList;

import javax.servlet.http.HttpSession;

public class OnlineCounter {

private static List list = new ArrayList();

private OnlineCounter() {

}

public static void addUser(Object object) {

//得到用户当前访问时间

String nowtime = com.hnedu.util.StringUtils.getTime("mm:ss");

//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 = 0; i < list.size(); 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]) > 300) {

list.remove(i);

}

}

//添加一个新的在线用户

list.add(str);

//释放资源

str = null;temp = null;

}

public static int getOnlineCount() {

//返回当前在线人数

return list.size();

}

public static List getOnline() {

return list;

}

/** 计算两个时间差,返回相差秒数 */

private static int subTime(String src,String des) {

int n = 0;

java.util.Calendar ca = java.util.Calendar.getInstance();

long time1 =

com.hnedu.util.StringUtils.compareStringTime(src,des,"mm:ss");

ca.setTimeInMillis(time1);

n = (ca.get(java.util.Calendar.MINUTE)) * 60;

n = n + ca.get(java.util.Calendar.SECOND);

return n;

}

}

引用的StringUtils里面的两个方法:

/**

* 获得当前时间

* @param parrten 输出的时间格式

* @return 返回时间

*/

public static String getTime(String parrten)

{

String timestr;

if(parrten==null||parrten.equals(""))

{

parrten="yyyyMMddHHmmss";

}

java.text.SimpleDateFormat sdf=new SimpleDateFormat(parrten);

java.util.Date cday=new Date();

timestr=sdf.format(cday);

return timestr;

}

/**

* 比较两个字符串时间的大小

* @param t1 时间1

* @param t2 时间2

* @param parrten 时间格式 :yyyy-MM-dd

* @return 返回long =0相等,>0 t1>t2,<0 t1*/

public static long compareStringTime(String t1,String t2,String parrten)

{

SimpleDateFormat formatter = new SimpleDateFormat (parrten);

ParsePosition pos= new ParsePosition(0);

ParsePosition pos1 = new ParsePosition(0);

Date dt1=formatter.parse(t1,pos);

Date dt2=formatter.parse(t2,pos1);

long l=dt1.getTime()-dt2.getTime();

return l;

}

java统计在线人数_java统计当前在线数 (转)相关推荐

  1. javaweb监听器(统计在线人数:统计session)

    1.创建监听器,重写里面的方法 package com.xiaocong.listener;import javax.servlet.ServletContext; import javax.serv ...

  2. java web 在线人数_java网页中怎样统计在线人数

    展开全部 1.用session超时,session为null就表示下线了 2.也可以采用数据库中设置 临时表 来处理 一个用户登陆时向表中插进一62616964757a686964616fe4b893 ...

  3. java统计在线人数_java实现在线人数统计

    然后再配置监听, web.xml配置: 1 2 com.test.OnlineUserListenerlistener-class> 3 listener> 一旦监听器发现调用了sessi ...

  4. java十进制输出_JAVA输入一个十进制数N,输出r进制的数

    \\引入包 import java.util.Scanner; import java.util.Stack; public class Change { public static void mai ...

  5. java质因数算法_Java分解任意输入数的质因数算法的实现示例

    这篇文章主要介绍了Java实现分解任意输入数的质因数算法,涉及java数学运算相关操作技巧,需要的朋友可以参考下 本文实例讲述了Java实现分解任意输入数的质因数算法.分享给大家供大家参考,具体如下: ...

  6. java word编辑_java实现word在线编辑及流转

    [实例简介] java开发web办公系统,调用PageOffice组件实现word在线编辑及流转 [实例截图] [核心代码] worddemo ├── worddemo │   ├── css │   ...

  7. java角谷_java实现递归设计——数鸭子和角谷定理

    java实现递归设计--数鸭子和角谷定理 java实现递归设计--数鸭子和角谷定理 一 .题目分析 题目一:一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只.这样他经过了七个村子后还 ...

  8. java api 英文_JAVA中英文API(在线版)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 www.qht02.com.cn 全球最大搜索 package com.qhit; import java.awt.Graphics; import ja ...

  9. java完全数判断_java基础之完数判断

    完数: 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.如果一个数恰好等于它的因子之和,则称该 ...

最新文章

  1. [云炬创业基础笔记]第十一章创业计划书测试11
  2. 2018-2019-2-20175225 实验四《Android开发基础》实验报告
  3. Xcode 创建自定义模板
  4. linux下Zlib的安装与使用
  5. C#性能优化篇 - 基于索引器封装EPList
  6. 【java奇思妙想】一个能够改变字体颜色、字号大小、字体样式的html网页
  7. innodb_force_recovery
  8. my docker note
  9. 拓端tecdat|R语言Lasso回归模型变量选择和糖尿病发展预测模型应用(含练习)
  10. Jquery中$(document).ready(function(){ })函数
  11. 怎样使用BMFont生成fnt字体
  12. Ardence BXP 3.5 - 4.1 PNP 方法
  13. Arduino资源下载
  14. 免费的DDoS防火墙有哪些
  15. 计算机基础知识msoffice高级应用,2017计算机二级MS Office高级应用考试大纲
  16. 【Flutter小记5】Isolate ffi Method Channel 使用简介与总结
  17. 关于mysql安装时无法正常启动0xc000007b的问题
  18. Elasticsearch 响应数据压缩功能详解
  19. 需求管理二:需求的建模与跟踪
  20. 共享出行的最后一片战场

热门文章

  1. 交换机telnet配置
  2. “内存或磁盘空间不足 Microsoft Excel无法再次打开...”的解决方法
  3. Fujitsu UMPC U1010 发布会
  4. Ubuntu Linux 携手诺基亚进军手机操作系统市场
  5. wince手写输入法以及软键盘拼音输入法的问题
  6. 使用计算机扬声器打电话,【IT之家干货店】教你用Win10连接iPhone,在电脑上接打电话、收发短信...
  7. 招商银行专业版出现重大安全问题?
  8. 招商银行专业版,交易记录下载到本地是乱码怎么办
  9. 安卓装逼技巧:QQ空间变iPhone8客户端
  10. SVN还原文件到历史版本详解