转载出处:发现多处转载,原出处及作者未知。
  
  计数器是一般网站必备的东东,别小看它了,每当站长看着小小计数器上的数字飞速增长的时候,感觉实在是好极了。以前我们用cgi、asp来写计数器,这方面的文章很多了,在这里,我们将会采用目前比较流行的jsp技术演示如何做一个计数器。
  其中我们用到了两个文件,test.jsp文件用于在浏览器中运行,counter.java是后台的一个小java bean程序,用来读计数器的值和写入计数器的值。而对于计数器的保存,我们采用了文本文件lyfcount.txt。

下面是两个文件的详细程序代码。
1. test.jsp文件代码
该文件要放到web目录下。
//test.jsp    
<%@ page contentType= "text/html;charset=gb2312"%>    
<HTML>    
<HEAD>    
<meta http-equiv= "Content-Type" content= "text/html; charset=gb2312">    
<META NAME= "GENERATOR" CONTENT= "Oracle JDeveloper">    
<TITLE>计数器演示程序</TITLE>    
</HEAD>    
<BODY>    
<!--创建并调用bean(counter)-->    
<jsp:useBean id= "counter" class= "counter" scope= "request">    
</jsp:useBean>    
<%    
//调用counter对象的ReadFile方法来读取文件lyfcount.txt中的计数    
String cont=counter.ReadFile( "/lyfcount.txt");    
//调用counter对象的ReadFile方法来将计数器加一后写入到文件lyfcount.txt中    
counter.WriteFile( "/lyfcount.txt",cont);%>    
您是第<font color= "red"><%=cont%></font>位访问者    
</BODY>    
</HTML>

2. counter.java文件代码
文件放到class目录下。
//counter.java 读写文件的一个bean    
import java.io.*;    

public class counter extends Object {    
private String currentRecord = null; //保存文本的变量    
private BufferedReader file; //BufferedReader对象,用于读取文件数据    
private String path; //文件完整路径名    
public counter() {    
}    
//ReadFile方法用来读取文件filePath中的数据,并返回这个数据    
public String ReadFile(String filePath) throws FileNotFoundException    
{    
path = filePath;    
//创建新的BufferedReader对象    
file = new BufferedReader( new FileReader(path));    
String returnStr = null;    
try    
{    
//读取一行数据并保存到currentRecord变量中    
currentRecord = file.readLine();    
}    
catch (IOException e)    
{ //错误处理    
System.out.println( "读取数据错误.");    
}    
if (currentRecord == null)    
//如果文件为空    
returnStr = "没有任何记录";    
else    
{ //文件不为空    
returnStr =currentRecord;    
}    
//返回读取文件的数据    
return returnStr;    
}    
//ReadFile方法用来将数据counter+1后写入到文本文件filePath中    
//以实现计数增长的功能    
public void WriteFile(String filePath,String counter) throws FileNotFoundException    
{    
path = filePath;    
//将counter转换为int类型并加一    
int Writestr = Integer.parseInt(counter)+1;    
try {    
//创建PrintWriter对象,用于写入数据到文件中    
PrintWriter pw = new PrintWriter( new FileOutputStream(filePath));    
//用文本格式打印整数Writestr    
pw.println(Writestr);    
//清除PrintWriter对象    
pw.close();    
} catch(IOException e) {    
//错误处理    
System.out.println( "写入文件错误"+e.getMessage());    
}    
}    

}

  到这里,程序写完了,将counter.java编译为counter.class,同样放在对应的class目录下,在根目录下建立一个lyfcount.txt文件,文件内容就一个数字0,直接在浏览器中敲入地址就可以看到计数器了,刷新浏览器会看到不断变话的数字。

  (如果运行时候提示找不到文件,请将上面test.jsp中的readfile那一句注释后运行一次则lyfcount.txt文件自动建立,然后就可以正常运行。)