js|計數器
計數器是一般網站必備的東東,別小看它了,每當站長看著小小計數器上的數字飛速增長的時候,感覺實在是好極了。以前我們用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檔案自動建立,然後就可以正常運行。)