网页计数器---代码

<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.math.*"%>
<html>
<head><title>网站计数器</title></head>
<body>
<%!
	BigInteger count = null ;
%>
<%!	// 为了开发简便,将所有的操作定义在方法之中,所有的异常直接加入完整的try...catch处理
	public BigInteger load(File file){
		BigInteger count = null ;	// 接收数据
		try{
			if(file.exists()){
				Scanner scan = new Scanner(new FileInputStream(file)) ;//从文件中读取
				if(scan.hasNext()){
					count = new BigInteger(scan.next()) ;//将内容放到BigInteger类中
				}
				scan.close() ;
			} else {	// 应该保存一个新的,从0开始
				count = new BigInteger("0") ;
				save(file,count) ;	// 保存一个新的文件
			}
		}catch(Exception e){
			e.printStackTrace() ;
		}
		return count ;
	}
	public void save(File file,BigInteger count){//保存计数文件
		try{
			PrintStream ps = null ;//定义输出流对象
			ps = new PrintStream(new FileOutputStream(file)) ;//打印流对象
			ps.println(count) ;//保存数据
			ps.close() ;
		}catch(Exception e){
			e.printStackTrace() ;
		}
	}
%>
<%
	String fileName = this.getServletContext().getRealPath("/") + "count.txt";	// 这里面保存所有的计数的结果
	File file = new File(fileName) ;
	if(session.isNew()){
		synchronized(this){
			count = load(file) ;	// 读取
			count = count.add(new BigInteger("1")) ;	// 再原本的基础上增加1。
			save(file,count) ;
		}
	}
%>
<h2>您是第<%=count==null?0:count%>位访客!</h2>
</body>
</html>

析:

首先定义一个全局变量BigInteger,这样即使用户刷新页面,BigInteger对象也不会重复声明。分别定义了save()和load()方法,load()方法中首先判断文件是否存在,如果存在,则将已有内容读取进来;如果文件不存在,则创建一个新的count.txt(路径默认为web根目录中),并且将其中的内容设置为0.如果第一次访问,则要执行文件的更新操作,再同步代码块中首先对内容修改(让内容加1,由于使用的是BigInteger类,所以要使用其中的add()方法完成操作),然后将新的内容重新保存在文件中。

ASP+ACCESS的版本安装说明: 1.需要支持ASP和Access数据库的空间。 2.超级管理员登陆页面:qqcf_admin.asp,默认用户名为:www.qqcf.com,密码:www.qqcf.com,请安装后立即修改! 3.计数器的图片制作的PhtoShop和Flash源文件放在QQCF_Pic目录里,你可以修改成你自己的图片,当然也可以自己做啦。 4.如果忘记密码请打开数据库修改,把Password字段的对应值修改为254a978baaa071ad,这样密码就变为www.qqcf.com 5.免费版请保留版权使用,作者不对其作品付任何责任,你可以任意传播。 6.未经作者许可请勿用于任何商业用途。 7.计数器的MsSql版,采用DLL组件、存储过程、事务编写,支持百万级数据量,提供免费下载,无任何限制,只需保留版权使用即可,需要的朋友请到作者网站http://www.qqcf.com下载。 8.必须接受以下乘风原创程序用户协议方可以使用本计数程序 功 能: 1.总共60记数器图片样式自由选择,并且可以方便地增加记数器图片样式。 2.可以设置计数器显示数字,显示位数,计数器是否隐藏,统计信息是否公开等。 3.页面显示记数和IP防刷新记数两种记数模式,支持Script方式和Img方式调用计数器代码。 4.可以记录来访客的来源IP地址和来源页面信息,在线人数。 5.每月、每天和每小时的访问数据统计,回头率统计,每个网页浏览统计。 6.搜索引擎统计,还可以自己定义搜索引擎,搜索关键字统计。 7.注册用户找回密码功能,用户可以重置统计,删除注册账号。 8.多用户计数器,具有管理注册用户功能。 9.系统会自动删除过多的以前的无用的来源和在线记录,保证系统快速稳定运行,还可以在线压缩数据库。 10.增加计数器图片样式的方法:把新的计数器图片复制到qqcf_counterpic目录,然后设置样式数量即可。 11.安全性:密码MD5加密,注册、登陆使用验证码,完全防Sql注入 独有的特色: 1.计数器数字图片和统计图标两种机制共存,众多设置可调。 2.Script和Img两种方式调用计数器,Img方式计数器可以在任何能插入图片的地方使用。 3.独有的错误自动修复机制,能在计数器发生错误后自动修复。 4.完全杜绝并发线程容易对数据库造成的损坏,在流量大的网站上使用表现很稳定。 5.缓存机制,在缓存中保存数据,操作常见动作,大量减少对数据库的增加,删除频繁的操作。 6.稳定性、安全性、速度上表现都很优秀,功能齐全,代码集成程度高、完全公开,专业制作,完全免费。 乘风原创程序用户协议 乘风原创程序作者(以下简称作者)在此特别提醒,用户(您)欲使用乘风原创程序(以下简称乘风程序),必须事先认真阅读本协议,包括免除或者限制作者的免责条款及对用户的权利限制。请您审阅并接受或不接受本服务条款(未成年人审阅时应得到法定监护人的陪同)。如您不
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值