Ich bin soweit gekommen:
%Vor%Dabei befindet sich channelLogos.properties im selben Verzeichnis wie meine JSP. Ich bekomme eine FileNotFound-Ausnahme. Wo finde ich meine App eigentlich mit "channelLogos.properties", wenn nicht dasselbe Verzeichnis wie die JSP? Wie kann ich den richtigen Pfad zum Laden der Eigenschaftendatei ermitteln?
Dies wird die Aufgabe erfüllen:
%Vor%Wie auch immer, ich denke wirklich, dass Sie die Eigenschaftendatei im Klassenpfad haben und ein Servlet verwenden sollten
Ich möchte hoch empfehlen, über Modell 2 Servlets . Ich empfehle es allen, die immer noch Model 1-Servlets machen, das heißt "echte Arbeit" in einer JSP.
Was Ihre Frage betrifft: Werfen Sie zuerst die Eigenschaftendatei in Ihren Klassenpfad und lesen Sie dann die Datei mit getResourceAsStream:
%Vor%Natürlich gibt es viele Möglichkeiten und jeder wird seinen Favoriten haben.
Wenn Sie "dasselbe Verzeichnis wie JSP" sagen, was genau meinen Sie damit? Dass Ihre JSP irgendwo in, sagen wir, /mywebapp/somefolder/my.jsp
mit mywebapp
liegt, ist Ihr Anwendungsstamm und Ihre Eigenschaftendatei ist /mywebapp/somefolder/channelLogos.properties
?
Wenn ja, sind sie höchstwahrscheinlich NICHT im selben Verzeichnis. JSP wurde kompiliert und die Position, an der es sich befindet, kann abhängig vom Servlet-Container variieren. Am besten verwenden Sie ServletContext.getRealPath()
, wie von pkaeding vorgeschlagen, mit dem Eigenschaftendateipfad relativ zum webapp-Kontext als Argument. Verwenden Sie das obige Beispiel:
Beachten Sie, dass wenn Sie darauf bestehen, Ihre Eigenschaften in den gleichen Ordner wie JSP zu verschieben, sollten Sie darauf achten, dass es nicht öffentlich zugänglich ist (es sei denn, das ist die Absicht).
Sehen Sie sich ServletContext an. getRealPath () . Das sollte Ihnen den vollständigen Pfad zur Eigenschaftendatei geben.