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

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