如何做一个网站流量统计,要求有“总访问量”、“总浏览量”、“今日访问”、“日均访问”、“当前在线”五个功能,我们的网站是不连接外网的,是内部网站,哪位大哥有js代码麻烦提供下,小弟非常着急跪谢了!!!

解决方案 »

  1.   

    js代码?google也提供访问统计的功能,不过是需要外网的,估计你这里需要设计自己的表了
      

  2.   

    总访问量:监听session,创建一个加1.
    今日访问:filter过滤器,过滤所有请求,一次请求加1,做个定时器,到晚上12点,保存一次数据(年月日+访问次数),清一次0.
    总浏览量:把所有今日访问量表加起来.
    日均访问:除法.
    当前在线:监听session,创建一个加1,销毁一个减1.以上均为全局变量.
      

  3.   

    可以把这些要统计的数据写在一个xml文件里面。
      

  4.   

    session统计的不准确,不能实时监控,有时间差的 
      

  5.   

    使用session监听器监听session的创建与销毁
    一切数据都来自session
      

  6.   

    难的就是当前在线吧。
    我建议是采用Application做,每天0点清0(其实相当于!定义)
    当用户访问时相当于计数器,当用户退出时采用js的句柄onunload,加载另一个页面,对application减1。
      

  7.   


    <%@ page contentType="text/html;charset=gb2312" %> 
       <!--jsp计数器--> 
       <%-- 以前学ASP时,用ASP做防止刷新的计数器很简单,以下是一个用JSP做的计数器--%> 
       <html> 
       <head> 
       <title>jsp计数器</title> 
       </head> 
       <body> 
       <table width="100%" height="78"  border="0" align="center" cellpadding="-2" cellspacing="-2">
          <tr>
            <td height="13" colspan="5"><div align="center">
              <a href="manage/Login_M.jsp"><hr width="100%" size="1"></a>
              </div></td>
            </tr>
          <tr>
            <td width="124" height="13">&nbsp;</td>
            <td height="13" colspan="3" align="center">日照家教网服务热线:15065573767</td>
            <td width="141">&nbsp;</td>
          </tr>
          <tr>
            <td height="15" colspan="2">&nbsp;</td>
            <td width="464" valign="bottom" align="center">CopyRight &copy; 2009 日照家教网</td>
            <td colspan="2">&nbsp;</td>
          </tr>
          <tr>
            <td colspan="2">&nbsp;</td>
            <td align="center"> <% 
       //out.println(request.getHeader("Cookie")); 
       String currentRecord = null;//保存文本的变量 
       BufferedReader file; //BufferedReader对象,用于读取文件数据 
       //String nameOfTextFile = "count.txt"; 
        String nameOfTextFile = "E:/tomcat6.0.14/webapps/a/count.txt"; 
       //读取 
       file = new BufferedReader(new FileReader(nameOfTextFile)); 
       String readStr =null; 
       int writeStr =0; //如果计数文本中的计数值为空则让它显示时变成1并写入 
       try 
       { readStr = file.readLine(); } 
       catch (IOException e) 
       { System.out.println("读取数据错误."); } 
       if (readStr == null) readStr = "没有任何记录"; 
        
       //判断cookie,第一次登陆时加1,刷新时不累计计数 
       else if (request.getHeader("Cookie")==null) 
       { writeStr = Integer.parseInt(readStr)+1;} 
       else 
       { writeStr = Integer.parseInt(readStr);} 
        
       //写入时控制因为刷新引起的重复计数 
       if (request.getHeader("Cookie")==null) 
       { 
       try { 
       PrintWriter pw = new PrintWriter(new FileOutputStream(nameOfTextFile)); 
       pw.println(writeStr); 
       pw.close();} 
       catch(IOException e) { 
       out.println(e.getMessage());} 
       } 
       %> 
       <p align="center">您是CNJSP的第<b><font color="red"><%=writeStr%></font></b>位客人。</p> </td>
            <td colspan="2">&nbsp;</td>
          </tr>
          <tr bgcolor="#cccccc" align="center">
          
    <td height="8" colspan="2"></td>
            <td height="8" align="center"></td>
            <td height="8" colspan="2"></td>
     

          </tr>
        </table>
       <%@ page import="java.io.*" %> 
     
       </body> 
       </html> 
      

  8.   

    onunload用起来不好,刷新时也会执行的。另外当用户打开多个网页的时候,一个onunload就把-1,不准确。这个很难有精确的统计
      

  9.   

    其实找一个第三方的最好不过了,cnzz就挺不错的!