Java Tools

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  83 随笔 :: 0 文章 :: 16 评论 :: 0 Trackbacks
计数器是一般网站必备的东东,别小看它了,每当站长看着小小计数器上的数字飞速增长的时候,感觉实在是好极了。以前我们用cgi、asp来写计数器,这方面的文章很多了,在这里,我们将会采用目前比较流行的jsp技术演示如何做一个计数器。 6?P~(MPPm  
mVfGL 3P  
  其中我们用到了两个文件,test.jsp文件用于在浏览器中运行,counter.java是后台的一个小java bean程序,用来读计数器的值和写入计数器的值。而对于计数器的保存,我们采用了一个文本文件lyfcount.txt。
B2cYy,Whi  
6Nz</bHn  
转自:动态网制作指南
www.knowsky.com '$ 6Zv$S  
mgpeMc5R3  
下面是详细的程序代码(test.jsp放到web目录下,counter.java放到class目录):
+33qS}  
//test.jsp文件
@`3-X/Q  
<%@ page contentType="text/html;charset=gb2312"%>
LYL. eK  
<HTML>
 pW0  
<HEAD>
C|F1F &2U  
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
&wk.'0R9E  
<META NAME="GENERATOR" CONTENT="Oracle JDeveloper">
%K&gZIkX  
<TITLE>
87x7Rnj >=  
计数器演示程序
%fU wb  
</TITLE>
"I,z,/5Y  
</HEAD>
lJgBcZ{7  
<BODY>
IrtugFf  
<!--创建并调用bean(counter)-->
KPX)E!"v  
<jsp:useBean id="counter" class="counter" scope="request">
v2LW[I7]  
</jsp:useBean>
-5~k  
<%
~jKx  
//调用counter对象的ReadFile方法来读取文件lyfcount.txt中的计数
j(}8B=c{e6  
String cont=counter.ReadFile("/lyfcount.txt");
s Ki/puJ  
//调用counter对象的ReadFile方法来将计数器加一后写入到文件lyfcount.txt中
b#j^QB9w N  
counter.WriteFile("/lyfcount.txt",cont);%>
W*AWh`yDK  
您是第<font color="red"><%=cont%></font>位访问者
j {i6 TI  
</BODY>
e$]VJ-*Ni  
</HTML>
,x 61Tj6p  
{enOdTJQx  
//counter.java 读写文件的一个bean
}-0Rke6`>Y  
import java.io.*;
pcj}E(\ y  
mc?=kzE  
public class counter extends Object {
NHF1l}*  
private String currentRecord = null;//保存文本的变量
0&dB8+;Ge  
private BufferedReader file; //BufferedReader对象,用于读取文件数据
Pv: H87  
private String path;//文件完整路径名
 B4&% )2  
public counter() {
] RgX{;  
}
h4Hi&30  
//ReadFile方法用来读取文件filePath中的数据,并返回这个数据
ZF%0a,&%  
public String ReadFile(String filePath) throws FileNotFoundException
_v(ojt r=  
{
1HPnp /u  
path = filePath;
YicVk\(1  
//创建新的BufferedReader对象
2~ 0K7~  
file = new BufferedReader(new FileReader(path));
ct3vuSf?  
String returnStr =null;
&vt{]z=  
try
<ymk1tk8@  
{
p|~K$ +R  
//读取一行数据并保存到currentRecord变量中
~-g#'  
currentRecord = file.readLine();
C{s%WW3?  
}
! f/|Lm  
catch (IOException e)
DEC5"S'f#  
{//错误处理
j^ %9ji  
System.out.println("读取数据错误.");
uiro2 Fz8  
}
}H&/l?g'  
if (currentRecord == null)
DgO0/n  
//如果文件为空
Y:d2ra*[&  
returnStr = "没有任何记录";
`Au)H  
else
FN@p~ X  
{//文件不为空
="p{vnN"  
returnStr =currentRecord;
]v GW  
}
QDanl36  
//返回读取文件的数据
AR@urdG  
return returnStr;
V0 @M$op  
}
e i&:Z  
//ReadFile方法用来将数据counter+1后写入到文本文件filePath中
c$h=gQ  
//以实现计数增长的功能
~tnQw}x  
public void WriteFile(String filePath,String counter) throws FileNotFoundException
afTiP0 Qz  
{
dnx4bUW0  
path = filePath;
 *% Ga  
//将counter转换为int类型并加一
! Al9>  
int Writestr = Integer.parseInt(counter)+1;
^$%vQ/F,Z  
try {
C{A%JXV|y  
//创建PrintWriter对象,用于写入数据到文件中
oFhww4mY|  
PrintWriter pw = new PrintWriter(new FileOutputStream(filePath));
QyjT?K{j:  
//用文本格式打印整数Writestr
*R\U6A=J8  
pw.println(Writestr);
S$C5 c .  
//清除PrintWriter对象
>|=}0K  
pw.close();
AsBtn-X>^  
} catch(IOException e) {
(1XAc\Le  
//错误处理
e_Pdm8Lw)  
System.out.println("写入文件错误"+e.getMessage());
5._Wa[@  
}
25A-F<x  
}
BnUr~  
_f A:ynT]{  
}
#i'a`8Y6QT  
U_mAGr[  
  到这里,程序写完了,将counter.java编译为counter.class,同样放在对应的class目录下,在根目录下建立一个lyfcount.txt文件,文件内容就一个数字0,直接在浏览器中敲入地址就可以看到计数器了,刷新浏览器会看到不断变幻的数字。
mCzk^}5  
@(;G`0C  
  (如果运行时候提示找不到文件,请将上面test.jsp中的readfile那一句注释后运行一次则lyfcount.txt文件自动建立,然后就可以正常运行。)

posted on 2007-07-02 12:59 和田雨 阅读(201) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: