| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 748 人关注过本帖
标题:[求助]请教一个计数器的问题
只看楼主 加入收藏
Vivan
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-11-1
收藏
 问题点数:0 回复次数:6 
[求助]请教一个计数器的问题

我刚开始学习JSP,现在运行书上的一个防刷新计数器,包含Anti-refreshcount.jsp和counter.java,代码我基本上能看懂,只是其中提到的文件count.txt是应该自己新建吗?如果是这样的话,那应该放在什么位置在可以呢?谢谢哦
代码如下:
1、Anti-refreshcount.jsp的代码
<%@ page contentType="text/html; charset=GB2312" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<meta name="GENERATOR" content="Oracle JDeveloper">
<title>
防刷新计数器
</title>
</head>
<body bgcolor="#ffffff">
<!--创建并调用bean(counter)-->
<jsp:useBean id="counter" class="counter" scope="request">
</jsp:useBean>
<%
//调用counter对象的ReadFile方法来读取文件count.txt中的计数
String cont=counter.ReadFile("/count.txt");
//调用counter对象的ReadFile方法来将计数器加一后写入到文件count.txt中
counter.WriteFile("/count.txt",cont);%>
防刷新计数器<br>
您是第<%=cont%>位访问者
</body>
</html>
2、counter.java的代码
import java.io.*;
public class counter extends Object{
private String currentRecord=null;//保存文本的变量
private BufferedReader file; //BufferedReader对象,用于读取文件数据
private String path;//文件完整路径名
public counter() {
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
//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());
}
}

private void jbInit() throws Exception {
}
}

搜索更多相关主题的帖子: 计数器 
2006-11-16 00:17
禹_二
Rank: 1
等 级:新手上路
帖 子:661
专家分:0
注 册:2006-9-13
收藏
得分:0 
counter.txt只是记录访问量,应该说放到那里都可以,只要路径设置的对,能够访问到就可以.不过最好放到jsp文件的同一目录下.

2006-11-16 10:42
yinhaofeng
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-10-5
收藏
得分:0 
你的应用里的所有文件都可以随意放!但是你必须提供正确的路径给你的应用;
第一
<jsp:useBean id="counter" class="counter" scope="request">
</jsp:useBean>
中的type应该是包名加上这个类的类名;
第二
你的String cont=counter.ReadFile("/count.txt");
count.txt这个文件路径如果这样写的话,应用是找不它的,tomcat会报404的错误,你可以这样做
String cont=counter.ReadFile(request.getRealPath("/count.txt"));容器就可以找到这个文件了;
相应的都要改;
你所做的是防刷新计数器,但是好象这代码没起到这个作用;
2006-11-16 16:36
禹_二
Rank: 1
等 级:新手上路
帖 子:661
专家分:0
注 册:2006-9-13
收藏
得分:0 
没刷新一次就增加一次,这这么可以.

2006-11-17 13:25
Vivan
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-11-1
收藏
得分:0 
我把文件随便放,运行不成功,服务器提示说:Help viewer error URL: Unable to open location: Document not found on server
我按照yinhaofeng说的第二条,还是不行,系统提示说"Anti-refreshcount.jsp": [deprecation] getRealPath(java.lang.String) in javax.servlet.ServletRequest has been deprecated at line 0
There have been deprecation warnings. Please consult the documentation for a better alternative.
到底为什么呀?
谢谢!

2006-11-18 21:38
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
当然不能文件随便放,你真搞笑,TOMCAT有那么聪明吗?你随便放它也能找到?
你应该放在你的工程的根目录下

可惜不是你,陪我到最后
2006-11-19 09:00
Vivan
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-11-1
收藏
得分:0 
我都试过了,把它放在WEB-INF下,还是不行呀,晕了

2006-11-19 20:05
快速回复:[求助]请教一个计数器的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025267 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved