一个计数器例程,里面说文件路径找不到
程序及计数用的文本文件都在C:\Tomcat 4.1\webapps\counter\下面,类在C:\Tomcat 4.1\webapps\counter\WEB-INF\classes\counter下面,运行时的路径是:http://localhost:8080/counter/counter.jsp
但是报错如下:
type Status report
message lyfcount.txt (系统找不到指定的文件。)
description The requested resource (lyfcount.txt (系统找不到指定的文件。)) is not available.
说实话,jsp里面的发布路径问题我始终搞不清爽,各位帮帮忙吧!
问题点数:60、回复次数:5Top
1 楼9731boy(叉叉TV - 班头爷)回复于 2003-11-01 13:21:06 得分 0
那会不会是在http://localhost:8080/counter/下?Top
2 楼seaman0916(沙漠孤鹰)回复于 2003-11-01 14:44:36 得分 10
呵呵,我给你说种方法一定可以找到这个文件!
比如你用BufferedReader in=new BufferedReader(new FileReader(path));读这个文件.你可以先用PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter(path)));写一个文件,path 是相同的,搜索一下刚产生的文件,不就知道要读的这个文件该放在那儿了吗?
试试吧!Top
3 楼seaman0916(沙漠孤鹰)回复于 2003-11-01 14:50:06 得分 0
也可以把这个路径写在属性文件中,发布系统是配置一下属性文件不就行了吗?Top
4 楼hamerlove(小丸子)回复于 2003-11-03 11:48:29 得分 0
沙漠孤鹰,我把我的源代码给你看看,用你的方法还是报相同的错误呀!
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<title> New Document </title>
</head>
<body>
<%@ page import="java.io.*"%>
<%
String currentRecord=null;
BufferedReader file;
String nameOfTextFile="lyfcount.txt";
file=new BufferedReader(new FileReader(nameOfTextFile));
String readStr=null;
int writeStr=0;
try{
readStr=file.readLine();
}
catch(IOException e)
{
System.out.println("读取数据错误");
}
if (readStr==null)
readStr="没有任何记录";
else
if (request.getHeader("Cookie")==null)
{
writeStr=Integer.parseInt(readStr)+1;
}
else
{
writeStr=Integer.parseInt(readStr);
}
if (request.getHeader("Cookie")==null)
{
try{
PrintWriter pw=new PrintWriter(new FileOutputStream(nameOfTextFile));
pw.println(writeStr);
pw.close();
}
catch(IOException e)
{
out.println(e.getMessage());
}
}
%>
您是第<%=writeStr%>位客人
</body>
</html>
谢谢再帮我看看吧!
Top
5 楼leebx(浩如海)回复于 2003-11-03 12:10:51 得分 50
给个例子给你看:
<!--jsp计数器-->
<%@ page import="java.io.*" %>
<%
//out.println(request.getHeader("Cookie"));
String currentRecord = null;//保存文本的变量
BufferedReader file; //BufferedReader对象,用于读取文件数据
File nameOfTextFile = new File(application.getRealPath("include/count.txt"));
//读取
file = new BufferedReader(new FileReader(nameOfTextFile));
String readStr =null;
int writeStr =0; //如果计数文本中的计数值为空则让它显示时变成1并写入
try
{
readStr = file.readLine();
}
catch (IOException e)
{
System.out.println("读取数据错误.");
}
if (readStr == null) readStr = "没有任何记录";
//判断cookie,第一次登陆时加1,刷新时不累计计数
else if (request.getHeader("Cookie")==null)
{
writeStr = Integer.parseInt(readStr)+1;
}
else
{
writeStr = Integer.parseInt(readStr);
}
//写入时控制因为刷新引起的重复计数
if (request.getHeader("Cookie")==null)
{
try {
PrintWriter pw = new PrintWriter(new FileWriter(nameOfTextFile));
pw.println(writeStr);
pw.close();
}
catch(IOException e) {
out.println(e.getMessage());
}
}
out.print("<div align=\"center\">");
//把计数转化为图形
String count = String.valueOf(writeStr);
if(count.length() < 7)
{
for(int i=0;i< 7-count.length();i++)
{
out.print("<img src='include/nums/0.gif'>");
}
}
for(int i=0;i<count.length();i++)
{
out.print("<img src='include/nums/" + count.substring(i,i+1) + ".gif'>");
}
out.print("</div>");
%>
上文要有以下文件:
include/count.txt
include/nums/0.gif
...
include/nums/9.gif
在count.txt文件要有初始化数字
0Top




