许多地方都会用到的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>