`

JSP网站访问人数计数器

    博客分类:
  • JSP
阅读更多
首先是JSP页面文件,代码很简单,只有几行,主要代码放在javaBean类中:

(注意我利用图片显示访问量的数字,我是放在站点的images下的digit文件夹下)

这里的第一个javaBean设置成session是让每次同一人访问只算一次,除非他关闭浏览器,再进来才算两次。

这样同一次访问,刷新页面不累计访问量。
<% @ page language = " java "   import = " java.util.*,java.io.* "  pageEncoding = " gb2312 " %>
<% @ taglib prefix = " c "  uri = " http://java.sun.com/jsp/jstl/core "   %>

< html >
 
   < head  >
     < title > LinQifo </ title >    
   </ head >

   < body >

< jsp:useBean id = " a "  scope = " session "   class = " linQifoP41.addone " />
< jsp:useBean id = " b "  scope = " page "   class = " linQifoP41.display " />

已经有 <% b.counter();
     for ( int  i = 9 ;i >= 0 ; -- i)
     {
        out.print(b.img[i]);
    }
   
  %> 人访问该网页,欢迎您!
               
</ body >
</ html >

接下来是addone.java类,用来使访问量+1
package  linQifoP41;

import  java.io. * ;

public   class  addone  {
       
     public  addone()
     {
         try
         {
            String path = "" ;
            File f = new  File(path, " counter.txt " );
           
             if (f.exists())
             {
               
           
            FileReader fr = new  FileReader(path + " counter.txt " );
           
            BufferedReader br = new  BufferedReader(fr);
            String s = br.readLine();
             int  i = Integer.parseInt(s);
            i ++ ;
            System.out.print(i);
            br.close();
            s = Integer.toString(i);
           
            FileWriter fw1 = new  FileWriter(path + " counter.txt " );
            PrintWriter pw = new  PrintWriter(fw1);
            pw.println(s);
            pw.close();
           
            }
           
             else
             {
               
                f.createNewFile();
                FileWriter fw = new  FileWriter(path + " counter.txt " );
                BufferedWriter bw = new  BufferedWriter(fw);
                bw.write( " 1 " );
                bw.flush();
                fw.close();   
                   
            }

        }
         catch (IOException e)
         {
            System.out.print(e.toString());
        }
       
       
    }
}

第二个是用来显示访问量结果的display.java
package  linQifoP41;

import  java.io. * ;

public   class  display  {
   
     public  String[] img = new  String[ 10 ];
     // 读取文件   
     public   void  counter()
     {
         try
         {
            String path = "" ;
            File f = new  File(path + " counter.txt " );
           
             if (f.exists())
             {
            FileReader fr = new  FileReader(path + " counter.txt " );
            BufferedReader br = new  BufferedReader(fr);           
            String s = br.readLine();
             int  i = Integer.parseInt(s);
             int  st = 10 ;
             int  j = 0 ;
             while (j <= 9 )
             {
                img[j] = Integer.toString(i % st);
                img[j] = img[j] + " .jpg " ;
                img[j] = " images/digit/ " + img[j];
                img[j] = " <img src= " + img[j] + " > " ;
                img[j] += " </img> " ;
                i /= 10 ;
                j ++ ;
            }
            }
             else
             {
                System.out.print( " counter.txt文件不存在! " );
            }
           
        }
         catch (IOException e)
         {
            System.out.print(e.toString());           
        }
    }

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics