`

JSP编写高访问量下的统计程序

阅读更多

有时要为每一篇文章统计其点击次数,如果每一次浏览都要更新一次库的话,那性能在访问量很大的情况下,服务器的压力就会很大了,比较好一点的方法就是先将要更新的数据缓存起来,然后每隔一段时间再利用数据库的批量处理,批量更新库。源码如下:

    半分钟更新一次计数.

    count包中三个*.java文件

    1.CountBean.java

    package count;

    public class CountBean {  private String countType;

     int countId;

     public CountBean() {  }

     public void setCountType(String countTypes) {   this.countType = countTypes;  }

     public void setCountId(int countIds) {   this.countId = countIds;  }

     public String getCountType() {   return countType;  }

     public int getCountId() {   return countId;  } }

    2 CountCache.java

    package count;

    import java.util.*;

    public class CountCache {  public static LinkedList list = new LinkedList();

     public CountCache() {  }

     public static void add(CountBean cb) {   if (cb != null) {    list.add(cb);   }  }

    } 3.CountControl.java

    package count;

    import java.sql.*; import com.pp.db.*;

    public class CountControl {  private static long lastExecuteTime = 0;// 上次更新时间

     private static long executeSep = 30000;// 定义更新间隔时间,单位毫秒 半分钟

     public CountControl()
{
  }

     public synchronized void executeUpdate()
{
   Connection conn = null;
   PreparedStatement ps = null;
   try
{
    conn = new DBConnection().getConn();
    conn.setAutoCommit(false);
    ps = conn
      .prepareStatement("update t_news set hits=hits+1 where id=?");
    for (int i = 0; i < CountCache.list.size(); i++)
{
     CountBean cb = (CountBean) CountCache.list.getFirst();
     CountCache.list.removeFirst();
     ps.setInt(1, cb.getCountId());
     ps.executeUpdate();
    // ps.addBatch();
    }
   // int[] counts = ps.executeBatch();
    conn.commit();
   }
catch (Exception e)
{
    e.printStackTrace();
   }

 finally
{
    try
{
     if (ps != null)
{
      ps.clearParameters();
      ps.close();
      ps = null;
      conn.close();
     }
    }
catch (SQLException e) {    }

      }
  }

     public long getLast()
{
   return lastExecuteTime;
  }

     public void run()
{
   long now = System.currentTimeMillis();
   if ((now - lastExecuteTime) > executeSep)
{
     System.out.print("lastExecuteTime:"+lastExecuteTime);
     System.out.print(" now:"+now+"\n");
     System.out.print(" sep="+(now - lastExecuteTime)+"\n");
    lastExecuteTime=now;
    executeUpdate();
   }
   else
{
    System.out.print("wait for "+(now - lastExecuteTime)+" seconds:"+"\n");
   }
  }
}

    4.使用

    <% CountBean cb=new CountBean(); cb.setCountId(Integer.parseInt(request.getParameter("cid")));
  //计数的资源id CountCache.add(cb);
System.out.print(CountCache.list.size()+"<br>");
CountControl c=new CountControl();
c.run();
System.out.print(CountCache.list.size()+"<br>");

分享到:
评论
1 楼 eeeewwwqq 2011-08-15  
求解释

相关推荐

    在线考试系统jsp编写

    在线考试系统是一个基于Web的应用...总结来说,在线考试系统jsp编写是一个综合性的IT项目,涵盖了前端界面设计、后端逻辑处理、数据库管理和Web服务等多个方面,对于提升开发者的技术能力和项目实践经验具有很大价值。

    六祎:使用Serlvet做的访问量统计!

    本案例中,"六祎"分享了使用Servlet实现访问量统计的方法。这个简单的实践可以帮助开发者了解如何利用ServletContext来记录和展示网站的访问量。 首先,让我们深入理解ServletContext的概念。ServletContext是...

    JSP教师工作量统计系统

    《JSP教师工作量统计系统详解》 JSP(JavaServer Pages)是一种基于Java技术的动态网页开发工具,常用于构建交互式的Web应用程序。在教育领域,为了更有效地管理教学资源,评估教师的工作绩效,一个JSP教师工作量...

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

    - **页面信息统计**:针对网站内的各个页面进行独立访问量统计,有助于识别热门内容和改进不受欢迎的页面。 这些统计数据不仅以数字表格形式呈现,还配有直观的图表展示,使信息更加易于理解。 #### 4. 系统注册与...

    JSP实现网页访问统计

    为了更精确地统计访问量,我们可以通过结合使用`session`和`application`对象。其中`session`用于判断是否为新访问,而`application`则用于累积总的访问次数。这种方式能够避免因页面刷新而导致的重复计数问题。 ##...

    JSP流量统计系统

    5. **跳出率(Bounce Rate)**:只访问一个页面就离开的访问量占总访问量的比例。 6. **转化率(Conversion Rate)**:完成特定目标(如注册、购买)的访问量占总访问量的比例。 在JSP中实现流量统计,我们可以...

    季风流量统计系统(JSP).rar_统计_统计系统

    1. **访问量统计**:记录每个时间段内网站或应用的独立访客数量,以了解用户访问频率和活跃度。 2. **页面浏览量(PV)**:统计用户查看的页面数量,反映内容的受欢迎程度。 3. **停留时间**:测量用户在网站或应用上...

    jsp写的网站统计系统源代码

    【描述】:“jsp写的网站统计系统源代码”重复三次,这可能是为了强调该资源是用JSP编写的,并且提供的是完整的源代码。通常,这样的系统会包含收集、分析和展示网站流量数据的功能,如访问量、独立访客、页面浏览量...

    jsp流量统计系统(统计浏览流量的代码)

    1. **访问计数**: 记录每个页面被访问的次数,生成总访问量和单个页面访问量。 2. **访客追踪**: 识别并记录独立访客,分析访客来源、浏览器类型、操作系统等信息。 3. **页面停留时间**: 计算用户在每个页面的...

    深度学习(JSP)流量统计系统

    3. **数据分析**:系统需要能够处理和分析收集到的数据,例如计算每日/月/年的访问量、平均停留时间、最热门页面等。这通常涉及到SQL查询的编写,以及可能的数据挖掘算法。 4. **数据展示**:将分析结果以图表或...

    JSP源码JSP+SQL网站流量统计管理系统(源代码+论文)

    网站流量统计系统通常用于监控和分析网站的访问情况,包括但不限于访问量、访问者来源、页面停留时间等数据。这类系统的实现通常涉及到以下几个关键环节: 1. **数据收集**:通过在网页中嵌入JavaScript代码或者...

    jsp 编写的,用Sql server 2000和dbc-odbc连接数据库教师教学辅助系统

    JSP的优势在于其强大的后端支持,能够充分利用Java的面向对象特性,提供高性能和可扩展性。在本教学辅助系统中,JSP用于处理用户请求,生成动态网页,并与数据库进行交互。 二、SQL Server 2000数据库系统 SQL ...

    JSP学生选课管理系统(纯JSP版)

    6. **数据展示**:可能包含统计图表,如选课人数统计、热门课程推荐等,这些通常通过JSP结合JavaScript库(如jQuery或Chart.js)来实现动态可视化。 在实现过程中,开发者可能使用以下技术: - **JSP脚本元素**:...

    JSP试卷分析系统

    2. **Web程序**:本系统作为一个Web应用程序,运行在Web服务器上,如Apache Tomcat,用户通过浏览器进行访问。它通常包含一系列的JSP、Servlet、HTML、CSS、JavaScript文件以及配置文件。 3. **Java**:作为JSP的...

    jsp图书管理信息系统jhne10程序access

    5. **报表统计**:系统可能具备统计功能,如按时间、类别统计借阅量,帮助管理员分析图书借阅趋势,优化图书采购策略。 6. **用户界面**:系统应提供友好、直观的用户界面,使得无论是管理员还是普通用户都能轻松...

    JSP+SQL网站流量统计管理系统(源代码+论文).zip

    【JSP+SQL网站流量统计管理系统】是一种基于JavaServer Pages(JSP)技术和SQL数据库的Web应用程序,用于收集、分析并展示网站的访问数据。这个系统通常包括以下几个关键组成部分: 1. **用户界面**:使用JSP技术...

    251JSP宠物店销售管理系统

    【251JSP宠物店销售管理系统】是一个基于JavaServer Pages(JSP)技术开发的管理应用程序,专门针对宠物店的日常运营需求设计。该系统旨在优化和自动化宠物店的销售、库存、客户管理和订单处理等核心业务流程,提高...

    jsp+sql网站流量统计管理系统(源代码+论文)下载.zip

    4. **源代码**:是程序的原始编写形式,可以直接编译和运行,对于学习和理解系统工作原理至关重要。 5. **论文**:通常包含对项目的研究背景、设计思路、技术实现和实验结果的详细阐述,为读者提供了深入理解项目...

    基于jsp技术的在线考试系统.

    4. **成绩统计**:系统自动批改客观题,并提供成绩统计分析,帮助老师了解学生的学习状况。 考生角色的功能包括: 1. **考试报名**:考生可以选择参加已发布的考试,查看考试详情。 2. **在线答题**:在设定的时间...

Global site tag (gtag.js) - Google Analytics