Hallo allerseits,
1)
Meine Entwicklungsumgebung ist:
Netbeans IDE 5.5
Dort steht unter Tools--> Java Platform Manager:
Platform Name: jdk 1.5 (Default)
Platform Folder: C:\Programme\Java\jdk1.5.0_06
und
Standalone-Tomcat 5.5
Ich mache ein paar Testprogramme.
2)
Ich will mit dem Programm unten einen Servlet (Counter) erzeugen:
Bei jedem Aufruf der Website wird ein Zähler aus einer Datei gelesen, erhöht, wieder in die Datei geschrieben und auf dem Client ausgegeben.
Beim ersten Aufruf von:
http://localhost:8080/counter2/myCounter2
wird (wie gewünscht) auf dem Bildschirm ausgegeben:
Das Zähler Servlet wurde 256 Mal ausgegeben.
(256 habe ich einfach Mal zum Testen genommen, eignetlich müsste es 1 heissen).
Problem:
Wenn ich jetzt auf meinem Firefox-Browser auf
Ansicht --> Neu Laden
gehe, kommt wieder die _gleiche_ Meldung.
Das Zähler Servlet wurde 256 Mal ausgegeben.
Es _müsste_ aber die Meldung kommen:
Das Zähler Servlet wurde 257 Mal ausgegeben.
DasProgramm springt also nie in den if-Teil von:
if(b==true){
...
Warum?
mfg
Ernst
1)
Meine Entwicklungsumgebung ist:
Netbeans IDE 5.5
Dort steht unter Tools--> Java Platform Manager:
Platform Name: jdk 1.5 (Default)
Platform Folder: C:\Programme\Java\jdk1.5.0_06
und
Standalone-Tomcat 5.5
Ich mache ein paar Testprogramme.
2)
Ich will mit dem Programm unten einen Servlet (Counter) erzeugen:
Bei jedem Aufruf der Website wird ein Zähler aus einer Datei gelesen, erhöht, wieder in die Datei geschrieben und auf dem Client ausgegeben.
Beim ersten Aufruf von:
http://localhost:8080/counter2/myCounter2
wird (wie gewünscht) auf dem Bildschirm ausgegeben:
Das Zähler Servlet wurde 256 Mal ausgegeben.
(256 habe ich einfach Mal zum Testen genommen, eignetlich müsste es 1 heissen).
Problem:
Wenn ich jetzt auf meinem Firefox-Browser auf
Ansicht --> Neu Laden
gehe, kommt wieder die _gleiche_ Meldung.
Das Zähler Servlet wurde 256 Mal ausgegeben.
Es _müsste_ aber die Meldung kommen:
Das Zähler Servlet wurde 257 Mal ausgegeben.
DasProgramm springt also nie in den if-Teil von:
if(b==true){
...
Warum?
Code:
package myPackage2;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class myCounter2 extends HttpServlet {
int zaehler;
RandomAccessFile myDatei = null;
String realerPfad;
String pfad;
String dateiName;
public void init() throws ServletException, UnavailableException {
boolean b;
File myFile;
try{
myFile = new File("C:\\Programme\\Apache_Tomcat\\apache-tomcat-5.5.26\\webapps\\counter2\\zaehler.txt" ,"rw");
b = myFile.isFile();
if(b==true){
myDatei = new RandomAccessFile("C:\\Programme\\Apache_Tomcat\\apache-tomcat-5.5.26\\webapps\\counter2\\zaehler.txt" ,"rw");
zaehler = myDatei.readInt();
zaehler++;
myDatei.seek(0);
myDatei.writeInt(zaehler);
myDatei.close();
}
// Datei existiert nicht
else{
zaehler=256;
myDatei = new RandomAccessFile("C:\\Programme\\Apache_Tomcat\\apache-tomcat-5.5.26\\webapps\\counter2\\zaehler.txt" ,"rw");
myDatei.writeInt(zaehler);
myDatei.close();
}
}
catch(FileNotFoundException e){
//System.out.println("Fehler: Datei nicht vorhanden: "+e.toString());
}
catch(IOException e){
//System.out.println("Fehler: Datei nicht schließbar:");
//e.printStackTrace();
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Zähler Servlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Das Zähler Servlet wurde " +zaehler + " Mal aufgerufen</h1>");
out.println("</body>");
out.println("</html>");
out.close();
}
}
mfg
Ernst