0 0

网站年、日、月,周访问量统计 JSP怎么实现? 谢谢。20

谁有它的实现代码,   想学习下。。  网上找了好久都没。  不胜感谢。
2009年4月13日 08:49

13个答案 按时间排序 按投票排序

0 0

采纳的答案

有一个方法可以一步到位进行查询。但限于在mysql上,使用BIT_COUNT函数。
下面给一个示例,资料来自互联网。

建表语句:

DROP DATABASE IF EXISTS `test`;
CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `test`;

#
# Table structure for table t1
#

CREATE TABLE `t1` (
  `year` year(4) default NULL,
  `month` int(2) unsigned zerofill default NULL,
  `day` int(2) unsigned zerofill default NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

查询语句:

select year, month, BIT_COUNT(BIT_OR(1<<day)) as days from t1 group by year, month;

即按年月日自动统计并分组。

2009年4月13日 14:56
0 0

使用 session 监听器 是个很好的选择;

2009年4月15日 15:36
0 0

2楼的方法很不错!!!

2009年4月15日 15:06
0 0

最好的方式是用GOOGLE ANALYTIC,目前最强大的最时髦的

只要在你要的jsp上加上

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-1577733-48");
pageTracker._trackPageview();
} catch(err) {}</script>

这段代码就可以了.如果你对这个不了解你可以百度一下,有问题再跟我交流

2009年4月14日 11:12
0 0

推荐一个
51.la
正在使用中,非常好用

2009年4月14日 10:56
0 0

用第三工具是个不错的选择。。。很多网站提供这样的服务。

2009年4月14日 10:02
0 0

为什么不用 站长统计工具呢

2009年4月14日 09:46
0 0

个人觉得使用过滤器就可以了 ,具体的每天,每年,的访问量,可以再filter类中进行判断,mysql中的BIT_OR  这个还没用过,一会看看,对于一楼,感觉态度比我好多了,自己亲自体验,自己亲自写代码,值得学习

2009年4月13日 17:44
0 0

有成熟的开源框架,为什么不用,非要自己发明一个轮子,还不知道你的轮子能跑多远呢。

要是想学习的话,不用非得自己搞一个,去学习一下人家的不是更好。

2009年4月13日 16:32
0 0

楼上的不错

2009年4月13日 15:40
0 0

一、这是jsp调用页testcount.jsp

<%@ page import="java.util.Date" %>
<%@ page import="count.CountXml" %>

计算器测试<br>
<%
       CountXml xmlcount=CountXml.getInstance();
  
     if (session.isNew()){
      xmlcount.addcount(new Date());//增加访问量
      int n =xmlcount.getTotalCount();//取总访问量 
      String count=Integer.toString(n);
      session.putValue("count",count); 
      
     }

%>
您是第<font color="red"><%=session.getValue("count")%></font>位访问者 <br>  
    
总访问量:  <%=xmlcount.getTotalCount() %><br>
本年访问量:<%=xmlcount.getYearCount() %><br>
本月访问量:<%=xmlcount.getMonthCount() %><br>
本周访问量:<%=xmlcount.getWeekCount() %><br>
本日访问量:<%=xmlcount.getDayCount() %><br>

二、用到的两个类
1、CountXml.java

package count;

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStream;
import java.util.Properties;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.Calendar;


import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;

public class CountXml{
        private String fileName = "h:\\Tomcat 5.0\\webapps\\zz3zcwbwebhome\\WEB-INF\\xmlcount.xml";
        private static CountObjectInf obj=null;
        private static CountXml instance=null;
       
         public static CountXml getInstance(){
             if(instance==null){
                     instance=new CountXml();
              }
              return instance;
          }

private CountXml() {
         try{
              obj=read(fileName);
         }catch(Exception e){
              System.out.println(e);
         }
         

}

     public int getTotalCount(){
         return obj.getTotalCount();
     }

     public int getDayCount() {
return obj.getDayCount();
}


public int getMonthCount() {
return obj.getMonthCount();
}


public int getWeekCount() {
return obj.getWeekCount();
}


public int getYearCount() {
return obj.getYearCount();
}

public synchronized void addcount(Date da){//比较日期增加计数

             if (new SimpleDateFormat("yyyy-MM-dd").format(this.obj.date)
                           .equals(new SimpleDateFormat("yyyy-MM-dd").format(da)))
                this.obj.setDayCount(this.obj.getDayCount() + 1);
            else
                this.obj.setDayCount(1);

            if (new SimpleDateFormat("yyyy-MM").format(this.obj.date)
                            .equals(new SimpleDateFormat("yyyy-MM").format(da)))
                this.obj.setMonthCount(this.obj.getMonthCount() + 1);
            else
                obj.setMonthCount(1);

            Calendar ca = Calendar.getInstance();
            ca.setTime(da);
            ca.setFirstDayOfWeek(Calendar.MONDAY);

            if (ca.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY && !new SimpleDateFormat("yyyy-MM-dd").format(this.obj.date).equals(new SimpleDateFormat("yyyy-MM-dd").format(da)))
                 obj.setWeekCount(1);
            else
                 obj.setWeekCount(obj.getWeekCount() + 1);

            if (new SimpleDateFormat("yyyy").format(this.obj.date)
                         .equals(new SimpleDateFormat("yyyy").format(da)))
                this.obj.setYearCount(this.obj.getYearCount() + 1);
           else
                obj.setYearCount(1);
           obj.setDate(da);

   obj.setTotalCount(obj.getTotalCount()+1); 
           obj.setTempCount(obj.getTempCount()+1);
           if(obj.getTempCount()>=20){//只有当临时访问量大于等于20时才保存一次
                     obj.setTempCount(0);//临时计数器置0
                      write(fileName);
                      
           }
        }

private void write(String fileName) {
                try {
                        FileWriter writer = new FileWriter(fileName);
                        Marshaller.marshal(obj, writer);
                        writer.close();
                } catch (Exception e) {
                        System.out.println(e);

                }
        }

        private CountObjectInf read(String fileName) throws Exception {
                FileReader reader = new FileReader(fileName);
                CountObjectInf result = (CountObjectInf) 

Unmarshaller.unmarshal(CountObjectInf.class, reader);
                reader.close();
                return result;
         }
}

2、

package count;

import java.util.Date;
public class CountObjectInf {
// 总访问量合计
protected int totalCount = 0;
//日访问量
protected int dayCount = 0;
//周访问量
protected int weekCount = 0;
// 月访问量
protected int monthCount = 0;
//年访问量
protected int yearCount = 0;

//临时访问量
protected int tempCount=0;

protected Date date =new Date();

/**
* @return
*/
public int getDayCount() {
return dayCount;
}

/**
* @return
*/
public int getMonthCount() {
return monthCount;
}

/**
* @return
*/
public int getTotalCount() {
return totalCount;
}

/**
* @return
*/
public int getWeekCount() {
return weekCount;
}

/**
* @return
*/
public int getYearCount() {
return yearCount;
}

/**
* @param i
*/
public void setDayCount(int i) {
dayCount = i;
}

/**
* @param i
*/
public void setMonthCount(int i) {
monthCount = i;
}

/**
* @param i
*/
public void setTotalCount(int i) {
totalCount = i;
}

/**
* @param i
*/
public void setWeekCount(int i) {
  weekCount = i;
}

/**
* @param i
*/
public void setYearCount(int i) {
  yearCount = i;
}



/**
* @return
*/
public Date getDate() {
  return date;
}

/**
* @param date
*/
public void setDate(Date date) {
  this.date = date;
}

/**
* @return
*/
public int getTempCount() {
   return tempCount;
}

/**
* @param i
*/
public void setTempCount(int i) {
  tempCount = i;
}

}

2009年4月13日 13:15
0 0

拦截器
filter

2009年4月13日 12:58
0 0

这要看是练习使用还是实际多大规模的使用了吧?访问量不高的话,网上应该有很多计数器的例子啊

2009年4月13日 09:46

相关推荐

    非常完美Java实现年、月、日、周访问量统计

    以上就是使用Java实现年、月、日、周访问量统计的一些关键知识点。实际的代码实现会根据具体需求和上下文有所不同,但这些基础概念和技巧应该能帮助你开始这个项目。在实现过程中,保持代码的清晰和可维护性是非常...

    JSP实现网站流量统计

    **JSP实现网站流量统计** JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML代码中嵌入Java代码,从而实现服务器端的动态网页生成。在网站运营中,流量统计是一项至关重要的任务,它能够帮助我们了解...

    网站统计在线人数,当前年、月、日访问量JAVA代码

    本主题将详细介绍如何使用Java编程语言来实现这一功能,特别是关注当前年、月、日的访问量统计。 首先,我们需要理解基本的统计原理。网站访问量通常通过记录每个独立访客的请求来计算。在线人数则是指在特定时间...

    java基于xml实现网站访问量统计

    Java基于XML实现网站访问量统计是一种常见的Web应用监控方法,主要通过解析XML文件来记录和分析网站的访问数据。在不改动数据库的情况下,这种技术提供了一种轻量级且易于集成的解决方案。以下是对这个主题的详细...

    JSP流量统计系统-实现网站流量

    **JSP流量统计系统——实现网站流量监控** 在互联网领域,了解网站的访问量和用户行为是至关重要的,这有助于优化用户体验,提升广告效果,以及制定有效的市场策略。JSP(JavaServer Pages)流量统计系统就是一个...

    网站群子网访问量统计

    通过统计网站群的子网访问量,可以了解哪些子网(或子域名)更受欢迎,从而调整内容策略。 2. **子网访问量**:子网访问量是指用户访问特定子网的次数,这通常通过分析HTTP请求来实现。统计子网访问量有助于识别...

    jsp实现在线人数及在线用户统计

    ### JSP实现在线人数及在线用户统计 #### 知识点概述 在现代Web开发中,统计在线人数和在线用户是十分重要的功能之一,尤其是在构建社区、论坛等交互性强的网站时。通过JSP(JavaServer Pages)可以方便地实现这一...

    完全基于jsp的在线统计系统

    此外,统计网站访问量分为日访问量、月访问量等,这在timecounter、monthcount和daytime目录中可能有所体现。这些统计通常基于日期进行分组,通过数据库查询来获取指定时间范围内的访问记录。例如,monthcount可能...

    于JSP的网站访问统计系统的设计与实现.pdf

    ### 基于JSP的网站访问统计系统的设计与实现 #### 1. 引言 随着互联网技术的发展,网站的建设和维护变得越来越重要。为了更好地优化网站内容和服务,了解用户的访问行为至关重要。《基于JSP的网站访问统计系统的...

    可运行-JSP访问统计

    3. **负载均衡**:如果网站访问量大,考虑使用负载均衡策略分散服务器压力。 **六、扩展与进阶** 1. **实时统计**:引入WebSocket或其他实时通信技术,实现实时访问统计。 2. **报表生成**:利用如Apache POI库...

    JFreeChart+JSP实现统计图展示

    "JFreeChart+JSP实现统计图展示"是一个典型的Web应用程序开发案例,它结合了JFreeChart库、JavaServer Pages (JSP) 和Servlet技术,用于从SQL Server 2005数据库中提取数据并以图表的形式呈现。 **JFreeChart** 是...

    jsp访问量

    "jsp访问量"这个主题通常涉及到如何统计和分析JSP页面被用户访问的数量,这是衡量网站或Web应用受欢迎程度和用户活动度的重要指标。 首先,我们需要理解JSP页面的工作原理。JSP文件本质上是HTML代码中嵌入了Java...

    jsp.rar_访问统计_访问量

    本教程将聚焦于如何使用JavaServer Pages(JSP)技术来实现页面的访问量统计。JSP是Java平台上的一个动态网页技术,允许开发者将HTML代码与Java代码结合,从而在服务器端生成动态内容。 首先,我们需要理解JSP的...

    JSP网站流量统计系统

    【JSP网站流量统计系统】是一种基于Java Server Pages(JSP)技术构建的网络应用,用于监测和分析网站的访问情况。这样的系统可以帮助网站管理员了解用户行为、网站受欢迎程度以及优化网站性能。JSP作为服务器端脚本...

    jsp统计访问人数源码

    在本文中,我们将深入探讨如何使用JSP(JavaServer Pages)技术来实现一个简单的页面访问人数统计的功能。这个功能对于初学者来说是一个很好的实践项目,能够帮助他们更好地理解和运用JSP的基本原理。我们将讨论以下...

    JAVA-JSP流量统计系统

    2. **报表生成**:提供日、周、月、年的访问量统计报表,包括最常访问的页面、访问频率最高的时段等。 3. **用户行为分析**:记录用户在网站上的停留时间、页面浏览路径,帮助优化网站布局和内容。 4. **搜索引擎...

    JSP实现网页访问统计

    通过不同的实现方法,我们可以更准确地统计网站的访问次数,并对数据进行长期保存。 #### 二、使用Application对象进行统计 ##### 2.1 原理 应用范围全局的对象`application`非常适合用于存储和统计网站的访问...

    JSP实现一个网站流量统计器

    这个统计器设计巧妙,无需与现有的数据层进行深度整合,因此在部署时非常灵活,只需简单添加就能实现对网站访问量的有效监控。下面我们将详细讲解其核心原理和实现步骤。 ### 1. JSP基础 JSP(Java Server Pages)...

    JSP流量统计系统

    【JSP流量统计系统】是一种基于Java服务器页面(JSP)技术构建的系统,用于收集、分析和展示网站访问量的相关数据。此类系统的核心目标是为网站管理员提供关于用户行为的详细信息,如访问次数、停留时间、热门页面等...

    采用JSP开发的网站流量统计系统

    网站流量统计系统是互联网数据分析的重要工具,它可以帮助网站管理员了解网站的访问情况,包括用户访问量、页面浏览量、停留时间、来源路径等关键指标,从而优化网站内容,提升用户体验,实现商业目标。本系统采用...

Global site tag (gtag.js) - Google Analytics