2012-11-13 42 views
0

我想寫一個網站訪客計數器和得到這個代碼讀串出的txt到JSP

<html> 
<head> 
<title>Counter</title> 
</head> 
<body> 
<%@ page import="java.io.*" %> 
<% 
String datei="pathtotxt/count.txt"; 
String wert =""; 
try{ 
FileReader eingabestrom= new FileReader(new File(datei)); 
BufferedReader input=new BufferedReader(eingabestrom); 
wert=input.readLine(); 
input.close(); 

int count=Integer.parseInt(wert); 
count++; 
FileWriter ausgabestrom=new FileWriter(new File(datei)); 
BufferedWriter output=new BufferedWriter(ausgabestrom); 
output.write(String.valueOf(count)); 
output.close(); 
out.println("<h2>Sie sind der "); 
out.println(count); 
out.println(". Besucher auf unserer Site!</h2>"); 
} 
catch(IOException e) { 
out.println("Fehler: "+e); 
} 
%> 

</body></html> 

在txt文件,但只是一個零。 當我打開網頁,這似乎:

java.io.FileNotFoundException:pathtotxt/count.txt(拒絕)

但我已經改變了這個文件的權限。在終端中它說-rwxrwxrwx +,所以應該可以讀/寫這個文件。我該如何解決這個問題?

+0

並且怎麼樣的權限問題文件夾的路徑'pathtotxt'? – sp00m

+0

drwxrwx - x + 我必須讓它一樣嗎?所以rwxrwxrwx? – Applecow

+0

可能是的。試試吧,我們會看到';)' – sp00m

回答

1

我認爲最好是在服務器端實現這個功能。例如:

  • 創建一個類,在其構造函數讀取文件中的值,並將其保存
  • 這個類必須返回先前保存的值的公共方法(INT getCounter())。
  • 該類將具有一個公共方法,可以增加值並將其寫入文件,並始終保持同步。

然後,JSP代碼如下:

<html> 
<head> 
<title>Counter</title> 
</head> 
<body> 
<%@ page import="package.of.class.ClassName" %> 
<% 
ClassName cl = new ClassName(); 
out.println("<h2>Sie sind der "); 
    out.println(cl.getCount()); 
out.println(". Besucher auf unserer Site!</h2>"); 
cl.increase(); 
%> 

這樣一來,你會提高工作效率的渲染JSP,你會不會有權限讀取文件

+0

Classname不能解析爲類型,儘管我使用了包和東西。 – Applecow