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