计数器是一般网站必备的东东
,别小看它了
,每当站长看着小小计数器上的数字飞速增长的时候,感觉实在是好极了
。以前我们用
cgi、
asp来写计数器,这方面的文章很多了,在这里,我们将会采用目前比较流行的
jsp技术演示如何做一个计数器
。  
其中我们用到了两个文件,test.
jsp文件用于在浏览器中运行,counter.java是后台的一个小java bean程序,用来读计数器的值和写入计数器的值。而对于计数器的保存,我们采用了一个文本文件lyfcount.txt。  
  
  
下面是详细的程序代码(test.jsp放到web目录下,counter.java放到class目录):  
  
  
//test.jsp文件
  
<%@ page contentType="text/html;charset=gb2312"%>
  
<HTML>
  
<HEAD>
  
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  
<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>  
  
//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文件自动建立,然后就可以正常运行。)