Java /[JSP] Tomcat-Caching deaktivieren

glowhand

Programmierer
21 April 2006
273
16
Hallo!
Versuche mich gerade, in JSP einzuarbeiten und habe Tomcat 5.5 installiert. Läuft soweit, allerdings ist das Caching-Verhalten etwas merkwürdig:
Habe eine funktionierende JSP-Datei hochgeladen, diese im Browser aufgerufen. Sie wird korrekt angezeigt. Wenn ich sie nun durch eine nicht funktionierende JSP-Datei ersetze, wird manchmal eine Fehlermeldung, manchmal aber auch die zuvor hochgeladene, noch funktionierende, JSP-Datei angezeigt. Das stört natürlich sehr. Wie kann ich dieses Caching deaktivieren?
Habe bisher nur in der context.xml "<Context cachingAllowed="false" >" eingetragen. Trotz Neustart des Servers scheint das keine Änderung bewirkt zu haben.
Irgendwelche Ideen?
 
klingt für mich auch nach Browser-Caching, mal die WebDeveloper-Toolbar installieren und den Cache deaktivieren.

Ist definitiv kein Browser-Cache-Problem, tritt nämlich auch bei verschiedenen Browsern auf. Wenn ich die Seite das erste Mal im Internet Explorer eingebe, hat der die nicht im Cache, trotzdem zeigte er die veraltete Seite an.
Bei anderen Leuten, denen ich den Link schickte, ist es genauso.
 
also ich weiß nicht wie es mit Tomcat aussieht, aber bei Jetty werden bei Starten des Servers alleine Dateien in ein extra Verzeichnis kopiert, wodurch zur Laufzeit nichts mehr verändert werden kann.

Edit: Tomcat macht das scheinbar gleich, die kompilierten Dateien landen in einem "work"-Verzeichnis
 
Tomcat arbeitet mit Java und deren Klassenkonzept.
Wenn man eine Klasse verändert, muss man diese in das "Projekt" als Update einpflegen (neu kompilieren!).
Sonst liegen nur die alten Daten dort.
Mittels einer Entwicklungsumgebung wie Eclipse kann man das alles wunderbar handeln.
 
ich hatte diese automatik damals nicht dabei.
Ich dachte, der Classloader lädt die im Webordner befindlichen *.jar dateien, und nicht die *.class.
Vll irre ich mich auch.
Weil Tomcat benutzt nur jar dateien. Wenn er aus Class zur laufzeit jar erzeugt, wäre das ja super!
Würde bedeuten, du hast ein Filechecker der nach Veränderungen aller class dateien ausschau hält, und diese bei Änderung sofort die alte Jar aktualisiert.
 
Jap, Tomcat scant regelmaessig die Ordner mit den kompilierten JSP files (sind am Ende nur noch Servlets) und falls sich eine veraendert hat, ordert er dem ClassLoader (fuer den context) diese neu zuladen. Ausnahmen sind session beans und aehnlich persistente Objekte, die nicht neu geladen werden koennen.