盾怪网教程:是一个免费提供流行杀毒软件教程、在线学习分享的学习平台!

java统计当前在线数

时间:2024/10/23作者:未知来源:盾怪网教程人气:

[摘要]package com.hnedu.stat;/** * 计算在线人数,说明: * * 在访问页面放入: * com.hnedu.stat.OnlineCounter.addUser(Object ...
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

关键词:java统计当前在线数




Copyright © 2012-2018 盾怪网教程(http://www.dunguai.com) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版