„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie greife ich mit ServletContext auf Ressourcen im WAR/WEB-INF-Verzeichnis zu?

Wie greife ich mit ServletContext auf Ressourcen im WAR/WEB-INF-Verzeichnis zu?

Veröffentlicht am 21.12.2024
Durchsuche:942

How to Access Resources in the WAR/WEB-INF Directory with ServletContext?

Zugriff auf Ressourcen im WAR/WEB-INF-Verzeichnis mit ServletContext

Einführung:

Java-Webanwendungen speichern häufig wichtige Ressourcen im WAR/WEB-INF-Verzeichnis. Um auf diese Ressourcen zuzugreifen, können Entwickler die ServletContext-API nutzen.

Frage:

Wie können Sie den richtigen Pfad zu einer Ressource erstellen, die sich im WAR/WEB-INF befindet Ordner, wie z "/war/WEB-INF/test/foo.txt"?

Antwort:

Es gibt zwei Hauptmethoden zum Erstellen des Pfads zu Ressourcen im WAR/ WEB-INF-Verzeichnis mit ServletContext:

1. getRealPath()-Methode:

Wenn die WAR-Datei in eine Reihe von Dateien erweitert wurde, können Sie die getRealPath()-Methode verwenden:

ServletContext context = getContext();
String fullPath = context.getRealPath("/WEB-INF/test/foo.txt");

Dies gibt den vollständigen Systempfad zur Ressource zurück.

2. getResource() oder getResourceAsStream() Methoden:

Diese Methoden können unabhängig davon verwendet werden, ob die WAR-Datei erweitert ist oder nicht:

ServletContext context = getContext();
URL resourceUrl = context.getResource("/WEB-INF/test/foo.txt"); // for URL
InputStream resourceContent = context.getResourceAsStream("/WEB-INF/test/foo.txt"); // for input stream

Zusätzliche Hinweise:

  • Die im Beispielcode erwähnte Methode getContext() ist anwendungsspezifisch. In JSP-Seiten ist es als „Kontext“ verfügbar, während es in Servlets während der Initialisierung von der ServletConfig abgerufen wird.
  • Die Methode getRealPath() funktioniert möglicherweise nicht, wenn der Servlet-Container die WAR-Datei nicht extrahiert.
  • Die Methoden getResource() und getResourceAsStream() sind zuverlässig und funktionieren in allen Bereitstellungsszenarien.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3