JSP 計數器

    許多地方都會用到的JSP計數器,希望對大家有幫助,做爲收藏之用吧。

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page language="java" import="java.io.*"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>計數器</title>
</head>

<%!
//同步更新計數器
    synchronized void counter(){
        ServletContext application=getServletContext();   //構造application對象(可選)
        String szPath=application.getRealPath("/");           //得到當前路徑
        szPath=szPath+"hits.txt";                                          //計數器文件 0-9999999999999...
        String szRecord="";                                                    //記數 String
        int nRecord=0;                                                             //記數 int
        try{
            BufferedReader file=new BufferedReader(new FileReader(szPath));
            szRecord=file.readLine();                                       //讀取計數器文件
        }
        catch(Exception e){
            System.out.println(e);
        }
  if(szRecord==null){
   szRecord="0";                                                                  //如果計數器文件爲空
        }
        nRecord=java.lang.Integer.parseInt(szRecord)+1;    //計數器+1
  try{
            File f=new File(szPath);
            PrintWriter pw=new PrintWriter(new FileWriter(f));
            pw.print(nRecord);                                                 //寫文件
            pw.close();
        }
        catch(Exception e){
            System.out.println(e);
        }
    } 
%>

<% 
//顯示計數器
    if(session.isNew()){                                                       //如果是新會話
        counter();
    }   
    String Path=application.getRealPath("/");
    String szPath=Path+"hits.txt";
    String szRecord="";
    BufferedReader file=new BufferedReader(new FileReader(szPath));
    try{
        szRecord=file.readLine();
    }
    catch(Exception e){
        System.out.println(e);
    }
   
 //顯示7位數字gif圖像
    String szOut="<body topmargin='0' leftmargin='0'>";
    int i=0;
    int k=7-szRecord.length();                                            //"0"的個數
    for (i=0;i<k-1;i++){                                                         //顯示"0"
        szOut=szOut+"<img src='images/0.gif'>";
    }       
    for (i=0;i<szRecord.length();i++){                               //顯示非"0"
        szOut=szOut+"<img src='images/"+ szRecord.charAt(i) +".gif'>";
    }
    szOut=szOut+"</body>";
    out.println(szRecord);    
%>
</html>


(請注意!引用、轉貼本文應註明原作者:Rosen Jiang 以及出處:
http://blog.csdn.net/rosen

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章