|
JSP計(jì)數(shù)器源碼
計(jì)數(shù)器是一般網(wǎng)站必備的東東,別小看它了,每當(dāng)站長看著小小計(jì)數(shù)器上的數(shù)字飛速增長的時候,感覺實(shí)在是好極了。以前我們用cgi、asp來寫計(jì)數(shù)器,這方面的文章很多了,在這里,我們將會采用目前比較流行的jsp技術(shù)演示如何做一個計(jì)數(shù)器。 6?P~(MPPm mVfGL 3P 其中我們用到了兩個文件,test.jsp文件用于在瀏覽器中運(yùn)行,counter.java是后臺的一個小java bean程序,用來讀計(jì)數(shù)器的值和寫入計(jì)數(shù)器的值。而對于計(jì)數(shù)器的保存,我們采用了一個文本文件lyfcount.txt。 B2cYy,Whi 6Nz</bHn 轉(zhuǎn)自:動態(tài)網(wǎng)制作指南 www. ‘$ 6Zv$S mgpeMc5R3 下面是詳細(xì)的程序代碼(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 >= 計(jì)數(shù)器演示程序 %fU wb </TITLE> "I,z,/5Y </HEAD> lJgBcZ{7 <BODY> IrtugFf <!--創(chuàng)建并調(diào)用bean(counter)--> KPX)E!"v <jsp:useBean id="counter" class="counter" scope="request"> v2LW[I7] </jsp:useBean> -5~k <% ~jKx //調(diào)用counter對象的ReadFile方法來讀取文件lyfcount.txt中的計(jì)數(shù) j(}8B=c{e6 String cont=counter.ReadFile("/lyfcount.txt"); s Ki/puJ //調(diào)用counter對象的ReadFile方法來將計(jì)數(shù)器加一后寫入到文件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對象,用于讀取文件數(shù)據(jù) Pv: H87 private String path;//文件完整路徑名 B4&% )2 public counter() { ] RgX{; } h4Hi&30 //ReadFile方法用來讀取文件filePath中的數(shù)據(jù),并返回這個數(shù)據(jù) ZF%0a,&% public String ReadFile(String filePath) throws FileNotFoundException _v(ojt r= { 1HPnp /u path = filePath; YicVk\(1 //創(chuàng)建新的BufferedReader對象 2~ 0K7~ file = new BufferedReader(new FileReader(path)); ct3vuSf? String returnStr =null; &vt{]z= try <ymk1tk8@ { p|~K$ +R //讀取一行數(shù)據(jù)并保存到currentRecord變量中 ~-g#‘ currentRecord = file.readLine(); C{s%WW3? } ! f/|Lm catch (IOException e) DEC5"S‘f# {//錯誤處理 j^ %9ji System.out.println("讀取數(shù)據(jù)錯誤."); 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 //返回讀取文件的數(shù)據(jù) AR@urdG return returnStr; V0 @M$op } e i&:Z //ReadFile方法用來將數(shù)據(jù)counter+1后寫入到文本文件filePath中 c$h=gQ //以實(shí)現(xiàn)計(jì)數(shù)增長的功能 ~tnQw}x public void WriteFile(String filePath,String counter) throws FileNotFoundException afTiP0 Qz { dnx4bUW0 path = filePath; *% Ga //將counter轉(zhuǎn)換為int類型并加一 ! Al9> int Writestr = Integer.parseInt(counter)+1; ^$%vQ/F,Z try { C{A%JXV|y //創(chuàng)建PrintWriter對象,用于寫入數(shù)據(jù)到文件中 oFhww4mY| PrintWriter pw = new PrintWriter(new FileOutputStream(filePath)); QyjT?K{j: //用文本格式打印整數(shù)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(chǎn)`8Y6QT U_mAGr[ 到這里,程序?qū)懲炅?,將counter.java編譯為counter.class,同樣放在對應(yīng)的class目錄下,在根目錄下建立一個lyfcount.txt文件,文件內(nèi)容就一個數(shù)字0,直接在瀏覽器中敲入地址就可以看到計(jì)數(shù)器了,刷新瀏覽器會看到不斷變幻的數(shù)字。 mCzk^}5 @(;G`0C (如果運(yùn)行時候提示找不到文件,請將上面test.jsp中的readfile那一句注釋后運(yùn)行一次則lyfcount.txt文件自動建立,然后就可以正常運(yùn)行。) |
|
|