请问如何用JS实现统计在线访问人数呀?
谢谢各位了!

解决方案 »

  1.   

    js行吗?可以考虑把用户sessionId存在Application里判断来实现你的功能
      

  2.   

    举个例子
    比如你通过访问客户的IP作为KEY
    你把ip存在一个list里
    之前可以判断下list是否包含这个IP存:application.setAttribute("userlist",list);获取:application.getAttribute("userlist");
      

  3.   

    代码就不贴了
    楼主去看看这个吧!
    http://www.loveqiutian.cn/html/22/61/61004/1.htm
      

  4.   

    问题是这个样子的,我之前用的也是SESSION。我在自己机器上面测试是可以统计的。但是部署到服务器上面就不行,因为我的服务器是用APACHE做过反向代理的,SESSION是存放在服务器上面的,而我并不是直接访问服务器,我所访问的是反向代理的那台机器。。所有我不用能SESSION来做这个。。
    我曾家在网上看到过用JS实现在线人数的统计。。但是现在找不到。。所有想请教一下高手,看能不能帮个忙!很急的!谢谢了
      

  5.   

    到 www.java2000.net找吧,我记得曾在那写过一个就是统计在线人数的小例子。
      

  6.   

    这个直接在JSP页面里就可以实现啊~
      

  7.   

    jsp文件如下:
    <%@ page language="java" pageEncoding="gb2312"%>
    <%@ page import="java.util.*" %>
    <jsp:useBean id="counter" class="com.count" scope="application">
    </jsp:useBean>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>网站计数器</title>
    </head>
      
    <body>
        <% //此处不可以用〈%!%〉因为这种方法用于方法内;
            String ip=request.getRemoteAddr();
            Date time=(Date)application.getAttribute(ip);
            if(session.isNew())
            {
               Date newTime=new Date();
               if(time==null)
               {
                   application.setAttribute(ip,newTime);
                   counter.setCounter();
               }
               else
               {
                   application.setAttribute(ip,newTime);
                   long mm=Date.parse(newTime.toString())-Date.parse(time.toString());
                   System.out.println(mm);
                   if(mm>120000)
                   {
                      counter.setCounter();
                   }
               } 
            }
            else
            {
               System.out.println(request.getMethod());
               Date newTime=new Date();
               application.setAttribute(ip,newTime);
            }
         %>
         <div align="center"><h3>网站计数器</h3></div>
         <div align="center">共有<%=counter.getCounter() %>人访问网站</div>
    </body>
    </html>count类:
    package com;public class count 
    {
        long counter=0; public long getCounter() {
    return counter;
    } public synchronized long setCounter() {
    counter++;
    return counter; //因为加了异步关健字synchronized,所以必须有返回值;
    }
        
        
    }
      

  8.   


    可以做一个表,专门存放在线用户。登陆时,添加到这个表里面,退出时,从这个表里面删除。或者程序里做一个List,一样的道理,进来后,将用户添加到这个list里面。至于何时退出可以用session监听器,或者定时清理长久不操作的用户。之前做过一个wap2.0的项目,对于session的支持不好,就用了第二种方法。