网页中的计数器问题
如果要统计网页的在线人数和登陆人数,如何在servlet中实现呢?
最佳答案:
其中我们用到了两个文件,test.jsp文件用于在浏览器中运行,counter.java是后台的一个小java bean程序,用来读计数器的值和写入计数器的值。而对于计数器的保存,我们采用了一个文本文件lyfcount.txt。
下面是详细的程序代码(test.jsp放到web目录下,counter.java放到class目录):
//test.jsp文件
$#@60;%@ page contentType="text/html;charset=gb2312"%$#@62;
$#@60;HTML$#@62;
$#@60;HEAD$#@62;
$#@60;meta http-equiv="Content-Type" content="text/html; charset=gb2312"$#@62;
$#@60;META NAME="GENERATOR" CONTENT="Oracle JDeveloper"$#@62;
$#@60;TITLE$#@62;
计数器演示程序
$#@60;/TITLE$#@62;
$#@60;/HEAD$#@62;
$#@60;BODY$#@62;
$#@60;!--创建并调用bean(counter)--$#@62;
$#@60;jsp:useBean id="counter" class="counter" scope="request"$#@62;
$#@60;/jsp:useBean$#@62;
$#@60;%
//调用counter对象的ReadFile方法来读取文件lyfcount.txt中的计数
String cont=counter.ReadFile("/lyfcount.txt");
//调用counter对象的ReadFile方法来将计数器加一后写入到文件lyfcount.txt中
counter.WriteFile("/lyfcount.txt",cont);%$#@62;
您是第$#@60;font color="red"$#@62;$#@60;%=cont%$#@62;$#@60;/font$#@62;位访问者
$#@60;/BODY$#@62;
$#@60;/HTML$#@62;
//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(pa );
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文件自动建立,然后就可以正常运行。)
其 他 回 答: (共2条)
1楼
要用到session,application变量。
查看更多相关问题 >>