JSP如何实现访问量计数
发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,这篇文章将为大家详细讲解有关JSP如何实现访问量计数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。有时要为每一篇文章统计其点击次数,如果每一次浏览都要更新一次库的话
千家信息网最后更新 2024年11月26日JSP如何实现访问量计数
这篇文章将为大家详细讲解有关JSP如何实现访问量计数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
有时要为每一篇文章统计其点击次数,如果每一次浏览都要更新一次库的话,那性能在访问量很大的情况下,服务器的压力就会很大了,比较好一点的方法就是先将要更新的数据缓存起来,然后每隔一段时间再利用数据库的批量处理,批量更新库。
那么下面本JSP教程提供源码如下:
CountBean.java /* * CountData.java * * Created on 2009年6月30日, 下午4:44 * * To change this template, choose Tools | Options and locate the template under * the Source Creation and Management node. Right-click the template and choose * Open. You can then make changes to the template in the Source Editor. */ package com.tot.count; /** * * */ public class CountBean { private String countType; int countId; /** Creates a new instance of CountData */ 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; } } CountCache.java /* * CountCache.java * * Created on 2009年6月30日, 下午5:01 * * To change this template, choose Tools | Options and locate the template under * the Source Creation and Management node. Right-click the template and choose * Open. You can then make changes to the template in the Source Editor. */ package com.tot.count; import java.util.*; /** * * @author http://www.tot.name */ public class CountCache { public static LinkedList list=new LinkedList(); /** Creates a new instance of CountCache */ public CountCache() {} public static void add(CountBean cb){ if(cb!=null){ list.add(cb); } } } CountControl.java /* * CountThread.java * * Created on 2009年6月30日, 下午4:57 * * To change this template, choose Tools | Options and locate the template under * the Source Creation and Management node. Right-click the template and choose * Open. You can then make changes to the template in the Source Editor. */ package com.tot.count; import tot.db.DBUtils; import java.sql.*; /** * * @author http://www.tot.name */ public class CountControl{ private static long lastExecuteTime=0;//上次更新时间 private static long executeSep=60000;//定义更新间隔时间,单位毫秒 /** Creates a new instance of CountThread */ public CountControl() {} public synchronized void executeUpdate(){ Connection conn=null; PreparedStatement ps=null; try{ conn = DBUtils.getConnection(); conn.setAutoCommit(false); ps=conn.prepareStatement("update t_news set hitshits=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; } }catch(SQLException e){} DBUtils.closeConnection(conn); } } 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"); } } } //注:如果你的数据库驱动支持批处理,那么可以将⑵,⑶标记的代码前的注释去掉,同时在代码⑴前加上注释 类写好了,下面是在JSP中如下调用。 ﹤% CountBean cb=new CountBean(); cb.setCountId(Integer.parseInt(request.getParameter("cid"))); CountCache.add(cb); out.print(CountCache.list.size()+"﹤br﹥"); CountControl c=new CountControl(); c.run(); out.print(CountCache.list.size()+"﹤br﹥"); %﹥
关于"JSP如何实现访问量计数"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
更新
篇文章
访问量
时间
很大
代码
数据
数据库
更多
注释
不错
实用
内容
单位
压力
同时
就是
性能
情况
教程
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
建立新产品检测数据库
数据库安装高级工程师
tbc哪个是最新服务器
国际服什么服务器容易上战神
组织网络安全培训情况报告
长宁区个性化软件开发概念设计
软件开发方向讲座心得
数据库 创建临时表
计算机数据库等总结
企业软件开发好找工作吗
数据库应急预案模板
服务器只有两声道播放电影
重庆债权管理软件开发
南昌匠心软件开发公司
网络安全月会议记录
玻璃行业数据库
什么叫做平台 软件开发
关于网络安全的名言英语作文
its无线网络技术有限公司
数据库有哪些实现方法
s6lpl职业选手数据库
晶体学数据库
网络安全考试有几次机会
网络安全国家发展
pdf2标准数据库
网络安全初级标准
数据库新技术文件
常州江苏大容量服务器供应商家
该机不在服务器管理
曲靖计算机网络技术培训