
|  | 
| 技术资料  > JSP技术 > Jsp/Servlet : jsp计数器制作手册 |  | jsp计数器制作手册March 25,2004
 |  | 2000-11-28· 刘玉锋·yesky 
 计数器是一般网站必备的东东,别小看它了,每当站长看着小小计数器上的数字飞速增长的时候,感觉实在是好极了。以前我们用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">
 <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>
 
 //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文件自动建立,然后就可以正常运行。)
 
 上面的程序完整源代码在我的网站http://aspfans.yeah.net上可以下载。
 
 
 |  | 
  
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved