JSP计数器

来源:互联网 发布:淘宝链接是什么 编辑:程序博客网 时间:2024/04/27 18:51
许多地方都会用到的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(IOException e){
            e.printStackTrace(System.err);
        }
        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(IOException 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(IOException e){
        System.out.println("文件未找到!");
    }
 //显示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(szOut);    
%>
</html>