java jsp网站统计浏览量

http://blog.csdn.net/wohugb/archive/2004/12/29/233365.aspx wohugb 这是原作者,我不问自取了。java文件和页面我已经改过。

计数器是一般网站必备的东东,别小看它了,每当站长看着小小计数器上的数字飞速增长的时候,感觉实在是好极了。以前我们用cgi、asp来写计数器,这方面的文章很多了,在这里,我们将会采用目前比较流行的jsp技术演示如何做一个计数器。其中我们用到了两个文件,test.jsp文件用于在浏览器中运行,counter.java是后台的一个小java bean程序,用来读计数器的值和写入计数器的值。而对于计数器的保存,我们采用了一个文本文件count.txt。

下面是详细的程序代码(count.jsp放到web目录下,counter.java放到class目录):
//count.jsp文件
<%@ page contentType="text/html;charset=GBK"%>
<!--创建并调用bean(counter)-->
<jsp:useBean id="counter" scope="page" class="com.lihengweb.common.Counter"/>
<%
//调用counter对象的ReadFile方法来读取文件count.txt中的计数
String url=request.getRealPath("../count.txt");
String cont=counter.ReadFile(url);
//调用counter对象的ReadFile方法来将计数器加一后写入到文件count.txt中
counter.WriteFile(url,cont);%>

<%
  StringBuffer showCountStr = new StringBuffer(cont.toString());

  showCountStr = new StringBuffer(showCountStr.toString().replace("0",
    "<img border=/"0/" alt=/"/" src=/""+request.getContextPath()+"/images/_0.gif/" />"));
  showCountStr = new StringBuffer(showCountStr.toString().replace("1",
    "<img border=/"0/" alt=/"/" src=/""+request.getContextPath()+"/images/_1.gif/" />"));
  showCountStr = new StringBuffer(showCountStr.toString().replace("2",
    "<img border=/"0/" alt=/"/" src=/""+request.getContextPath()+"/images/_2.gif/" />"));
  showCountStr = new StringBuffer(showCountStr.toString().replace("3",
    "<img border=/"0/" alt=/"/" src=/""+request.getContextPath()+"/images/_3.gif/" />"));
  showCountStr = new StringBuffer(showCountStr.toString().replace("4",
    "<img border=/"0/" alt=/"/" src=/""+request.getContextPath()+"/images/_4.gif/" />"));
  showCountStr = new StringBuffer(showCountStr.toString().replace("5",
    "<img border=/"0/" alt=/"/" src=/""+request.getContextPath()+"/images/_5.gif/" />"));
  showCountStr = new StringBuffer(showCountStr.toString().replace("6",
    "<img border=/"0/" alt=/"/" src=/""+request.getContextPath()+"/images/_6.gif/" />"));
  showCountStr = new StringBuffer(showCountStr.toString().replace("7",
    "<img border=/"0/" alt=/"/" src=/""+request.getContextPath()+"/images/_7.gif/" />"));
  showCountStr = new StringBuffer(showCountStr.toString().replace("8",
    "<img border=/"0/" alt=/"/" src=/""+request.getContextPath()+"/images/_8.gif/" />"));
  showCountStr = new StringBuffer(showCountStr.toString().replace("9",
    "<img border=/"0/" alt=/"/" src=/""+request.getContextPath()+"/images/_9.gif/" />"));
 
 %>
您是第<font color="red"> <%=cont%> </font>位访问者

 

 

//counter.java 读写文件的一个bean
package com.lihengweb.common;

import java.io.*;

public class Counter extends Object {
 private String currentRecord = null;// 保存文本的变量

 private BufferedReader file; // BufferedReader对象,用于读取文件数据

 private String path;// 文件完整路径名

 public Counter() {
 }

 // ReadFile方法用来读取文件filePath中的数据,并返回这个数据
 public String ReadFile(String filePath) throws FileNotFoundException {
  path = filePath;
  // 创建新的BufferedReader对象
  file = new BufferedReader(new FileReader(path));
  String returnStr = null;
  try {
   // 读取一行数据并保存到currentRecord变量中
   currentRecord = file.readLine();
  } catch (IOException e) {// 错误处理
   System.out.println("读取数据错误.");
  }
  if (currentRecord == null)
   // 如果文件为空
   returnStr = "没有任何记录";
  else {// 文件不为空
   returnStr = currentRecord;
  }
  // 返回读取文件的数据
  
  return returnStr;
 }

 // ReadFile方法用来将数据counter+1后写入到文本文件filePath中
 // 以实现计数增长的功能
 public void WriteFile(String filePath, String counter)
   throws FileNotFoundException {
  path = filePath;
  // 将counter转换为int类型并加一
  int Writestr = Integer.parseInt(counter) + 1;
  try {
   // 创建PrintWriter对象,用于写入数据到文件中
   PrintWriter pw = new PrintWriter(new FileOutputStream(filePath));
   // 用文本格式打印整数Writestr
   pw.println(Writestr);
   // 清除PrintWriter对象
   pw.close();
  } catch (IOException e) {
   // 错误处理
   System.out.println("写入文件错误" + e.getMessage());
  }
 }

}

到这里,程序写完了,将counter.java编译为counter.class,同样放在对应的class目录下,在根目录下建立一个count.txt文件,文件内容就一个数字0,直接在浏览器中敲入地址就可以看到计数器了,刷新浏览器会看到不断变幻的数字。(如果运行时候提示找不到文件,请将上面test.jsp中的readfile那一句注释后运行一次则count.txt文件自动建立,然后就可以正常运行。)这里,有一点很关键,count.jsp中有

String url=request.getRealPath("../count.txt");  在tomcat/你的版本/webapps/这里建个count.txt 。

 

效果如下:

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值