Heim >Java >javaLernprogramm >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?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-13 08:49:02713Durchsuche

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");

Dadurch wird die vollständige zurückgegeben Systempfad zur Ressource.

2. Methoden getResource() oder getResourceAsStream():

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.

Das obige ist der detaillierte Inhalt vonWie greife ich mit ServletContext auf Ressourcen im WAR/WEB-INF-Verzeichnis zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn