Java Tools

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            83 隨筆 :: 0 文章 :: 16 評論 :: 0 Trackbacks
          計數(shù)器是一般網(wǎng)站必備的東東,別小看它了,每當(dāng)站長看著小小計數(shù)器上的數(shù)字飛速增長的時候,感覺實在是好極了。以前我們用cgi、asp來寫計數(shù)器,這方面的文章很多了,在這里,我們將會采用目前比較流行的jsp技術(shù)演示如何做一個計數(shù)器。 6?P~(MPPm  
          mVfGL 3P  
            其中我們用到了兩個文件,test.jsp文件用于在瀏覽器中運行,counter.java是后臺的一個小java bean程序,用來讀計數(shù)器的值和寫入計數(shù)器的值。而對于計數(shù)器的保存,我們采用了一個文本文件lyfcount.txt。
          B2cYy,Whi  
          6Nz</bHn  
          轉(zhuǎn)自:動態(tài)網(wǎng)制作指南
          www.knowsky.com '$ 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 >=  
          計數(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中的計數(shù)
          j(}8B=c{e6  
          String cont=counter.ReadFile("/lyfcount.txt");
          s Ki/puJ  
          //調(diào)用counter對象的ReadFile方法來將計數(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  
          //以實現(xiàn)計數(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`8Y6QT  
          U_mAGr[  
            到這里,程序?qū)懲炅耍瑢ounter.java編譯為counter.class,同樣放在對應(yīng)的class目錄下,在根目錄下建立一個lyfcount.txt文件,文件內(nèi)容就一個數(shù)字0,直接在瀏覽器中敲入地址就可以看到計數(shù)器了,刷新瀏覽器會看到不斷變幻的數(shù)字。
          mCzk^}5  
          @(;G`0C  
            (如果運行時候提示找不到文件,請將上面test.jsp中的readfile那一句注釋后運行一次則lyfcount.txt文件自動建立,然后就可以正常運行。)

          posted on 2007-07-02 12:59 和田雨 閱讀(217) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 湖南省| 合作市| 萨迦县| 于都县| 高青县| 日土县| 广西| 台山市| 淳安县| 嘉鱼县| 汉沽区| 高密市| 安陆市| 乌拉特中旗| 天津市| 石台县| 湖南省| 云梦县| 安远县| 太和县| 鹤峰县| 六安市| 镇宁| 廊坊市| 新闻| 肃宁县| 都江堰市| 班戈县| 正阳县| 敦化市| 宝清县| 尖扎县| 南宁市| 博野县| 始兴县| 故城县| 宝清县| 明光市| 城口县| 黄龙县| 旬邑县|