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: 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

java统计_java统计当前在线数相关推荐

  1. java字数统计_java统计字数

    /** * 获取文章的字数或则字符数 * @author montao */ public class StatWordCount { private final char[] CHS = {',', ...

  2. java商品名称_Java统计商品信息

    在一个货架上有 5 件商品,编写程序,在输入商品价格之后输出最高价格.总价格和平均价格. 首先要创建一个包含 5 个空元素的价格数组,然后使用 for 循环使用户从控制台录入商品的价格,并将价格保存至 ...

  3. java统计在线人数_java统计当前在线数 (转)

    java统计当前在线数 (转)[@more@] package com.hnedu.stat; /** * 计算在线人数,说明: * * 在访问页面放入: * com.hnedu.stat.Onlin ...

  4. java判断一个文件有多少行_Java关于条件判断练习--统计一个src文件下的所有.java文件内的代码行数(注释行、空白行不统计在内)...

    要求:统计一个src文件下的所有.java文件内的代码行数(注释行.空白行不统计在内) 分析:先封装一个静态方法用于统计确定的.java文件的有效代码行数.使用字符缓冲流读取文件,首先判断是否是块注释 ...

  5. 统计java文件中的代码行数

    统计Java代码行数工具类  --  CodeCounterUtil.java 统计指定目录下的java文件中代码行数  --  public static int  getCodeNumFromFo ...

  6. java和redis统计在线,在SpringBoot中使用Redis的zset统计在线用户信息

    统计在线用户的数量,是应用很常见的需求了.如果需要精准的统计到用户是在线,离线状态,我想只有客户端和服务器通过保持一个TCP长连接来实现.如果应用本身并非一个IM应用的话,这种方式成本极高. 现在的应 ...

  7. ThingsBoard资产设备总数/离线数/在线数统计

    注意:本文只在sql层面做介绍,接口没有!目标4在语雀知识库.此文没有! 注意:本文只在sql层面做介绍,接口没有!目标4在语雀知识库.此文没有! 注意:本文只在sql层面做介绍,接口没有!目标4在语 ...

  8. java 方法数统计_利用Java简单实现一个代码行数统计器方法实例

    前言 哈喽,我是小黑, 最近学了java的输入输出流后一直心痒痒,总想找一点事情来做,所以用java代码来实现了一下统计代码的所有行数,看一下我上大学以来到底打了多少行. 先附上实现代码吧! pack ...

  9. linux中统计java数量,linux 统计当前目录下文件数

    查看当前目录下文件的个数 ls -l | grep "^-" | wc -l 查看当前目录下文件的个数,包括子目录里的. ls -lR| grep "^-" | ...

最新文章

  1. tomcat中request对象是被创建的_常用开源框架中设计模式使用分析(全)
  2. Python分布式爬虫-elasticsearch搭建搜索引擎
  3. zabbix修改时区
  4. 比较简单的c语言编辑器,大佬们,小菜鸟想问一问用vc编译器做简易画图软件
  5. sublime编写python路径报错怎么改_sublime开发Python的编码问题
  6. 微型计算机组装实验报告虚拟,微型计算机组装与维护实训(附光盘)
  7. java中_null和“”的区别详解
  8. 不需要训练数据的图像恢复
  9. SpringCloud微服务注册调用入门-路由网关
  10. delphi 线程安全list_Java的中的集合(容器)-List
  11. vue自定义组件是.vue还是html,Vue自定义组件的四种方式示例详解
  12. L1-004. 计算摄氏温度-PAT团体程序设计天梯赛GPLT
  13. React.js组件化开发第一步(框架搭建)
  14. 十大网站压力测试软件-- WEB压力测试工具介绍
  15. windows系统自带cmd命令下载文件(类似linux的wget下载文件)
  16. 前端安全 XSS跨站脚本攻击-CSRF跨站请求伪造攻击
  17. Prefuse及相关数据结构可视化工具
  18. linux 发送at指令,AT指令发送短信流程
  19. 让所有版本的IE卡死的HTML代码
  20. Android应用中打开百度地图、高德地图、网页版百度地图

热门文章

  1. java中经典八皇后难题_Java实现经典八皇后的问题
  2. ios点击大头针气泡不弹出_地图大头针气泡点击事件
  3. oracle的自动增长,Oracle实现id自动增长
  4. 如何自己搞一个维基百科?
  5. 一款实用可行的支付系统,专供互联网企业使用,赶紧收藏了!
  6. 皮一皮:好一道举世佳酿“青山卧雪龙”...
  7. 不敢相信,相同 SQL 下 Mybatis 查询结果和数据库竟然不一样!
  8. C语言32位数加一精简,一个简单的32位多任务操作系统的实现(1)
  9. 计算机应用基础的答案2015,2015年《计算机应用基础》模拟试题及答案(一)
  10. favicon自动获取_友情链接前面自动获取并添加favicon.ico小图标