Web-Container-Konfiguration für den Zugriff auf JSP- und statische Dateien
URL ServletContext.getResource(String path)
Set ServletContext.getResourcePaths(String path)
- .jsp
- .jspx
- .jsw
- .jsv
- Verzeichnis der Anwendungs-WAR-Dateien
- Zuerst durchsucht der Web-Container das Verzeichnis "WAR" der Anwendung nach einer angeforderten Ressource. Sie können jedoch keine Ressourcen unter den Verzeichnissen "WEB-INF" oder "META-INF" für eingehende Ressourcen bereitstellen, obwohl sie über die Methoden "getResource()" und "getResourcePaths()" zugänglich sind.
- Dokumentstammverzeichnisse vom Typ "preFragmentExtendedDocumentRoot"
- Als Zweites durchsucht der Web-Container alle Dokumentstammverzeichnisse vom Typ "preFragmentExtendedDocumentRoot". Definieren Sie
ein Dokumentstammverzeichnis vom Typ "preFragmentExtendedDocumentRoot" in der Datei ibm-web-ext.xmi im Verzeichnis WEB-INF der Anwendung. Gehen Sie wie folgt vor, um ein Dokumentstammverzeichnis
vom Typ "preFragmentExtendedDocumentRoot" für statische oder JSP-Dateien zu erstellen:
Statische Dateien: <fileServingAttributes xmi:id="<vom Benutzer angegebener Name>" name="preFragmentExtendedDocumentRoot" value="<vom Benutzer angegebener Wert>"/>
JSP-Dateien: <jspAttributes xmi:id="<vom Benutzer angegebener Name>" name="preFragmentExtendedDocumentRoot" value=<vom Benutzer angegebener Wert>"/>
Bei <vom Benutzer angegebener Name> kann es sich um eine Liste von Verzeichnissen und/oder JAR-Dateien handeln. Beispiel:
Wenn <vom Benutzer angegebener Name> nur eine Liste mit einem Verzeichnis enthält und dieses Verzeichnis JAR-Dateien enthält, werden diese JAR-Dateien nicht durchsucht. Es wird nur in diesem Verzeichnis und nicht in JAR-Dateien nach statischen Dateien und JSP-Dateien gesucht. Wenn die statischen Dateien bzw. JSP-Dateien in einer JAR-Datei enthalten sind, können die statischen Dateien bzw. JSP-Dateien nicht im Ordner META-INF der JAR-Datei enthalten sein, da dies ein eingeschränkter Ordner ist. <vom Benutzer angegebener Name> muss einen vollständigen Pfad zur JAR-Datei enthalten.<fileServingAttributes name="extendedDocumentRoot" value="C:\EDR_directory,C:\my\path\to\jarEDR.jar"/>
Achtung: Dokumentstammverzeichnisse vom Typ "preFragmentExtendedDocumentRoot" ist eine neue Funktion in WebSphere Application Server Version 9.0.
- Verzeichnisse vom Typ "META-INF/resources" für Fragmente unterhalb des Verzeichnisses "WEB-INF/Lib" in der Anwendungs-WAR-Datei
- Nachdem der Web-Container die Dokumentstammverzeichnisse vom Typ "preFragmentExtendedDocumentRoot" durchsucht hat, durchsucht er Webfragmente. Ein Webfragment umfasst eine
JAR-Datei in einem Verzeichnis vom Typ "WEB-INF/lib" der Anwendung. Die JAR-Datei kann statische Ressourcen in einem Verzeichnis vom Typ
"META-INF/resources" enthalten, die in der JAR-Datei definiert sind. Um zu verhindern, dass der Web-Container Verzeichnisse
vom Typ "META-INF/resource" durchsucht, setzen Sie die angepasste Eigenschaft "com.ibm.ws.webcontainer.SkipMetaInfResourcesProcessing"
des Web-Containers auf true. Der Standardwert für diese angepasste Eigenschaft ist "false".
com.ibm.ws.webcontainer.SkipMetaInfResourcesProcessing = true
Achtung: Verzeichnisse vom Typ "META-INF/resources" für Fragmente unterhalb des Verzeichnisses "WEB-INF/Lib" in der Anwendungs-WAR-Datei ist eine neue Funktion in WebSphere Application Server Version 9.0.
- Dokumentstammverzeichnisse vom Typ "extendedDocumentRoot"
- Zum Schluss durchsucht der Web-Container alle Anwendungen, die als Dokumentstammverzeichnisse vom Typ "extendedDocumentRoot" definiert sind.
Dokumentstammverzeichnisse vom Typ "extendedDocumentRoot" waren in früheren Releases verfügbar und sind in der Datei ibm-web-ext.xmi im Verzeichnis
"WEB-INF" der Anwendung definiert. Gehen Sie wie folgt vor, um ein Dokumentstammverzeichnis vom Typ "extendedDocumentRoot"
für statische oder JSP-Dateien zu erstellen:
Statische Dateien: <fileServingAttributes xmi:id="<vom Benutzer angegebener Name>" name="extendedDocumentRoot" value="<vom Benutzer angegebener Wert>"/>
JSP-Dateien: <jspAttributes xmi:id="<vom Benutzer angegebener Name>" name="extendedDocumentRoot" value=<vom Benutzer angegebener Wert>"/>
com.ibm.ws.webcontainer.SkipMetaInfResourcesProcessing = true
Bei <vom Benutzer angegebener Name> kann es sich um eine Liste von Verzeichnissen und/oder JAR-Dateien handeln. Beispiel:
Wenn <vom Benutzer angegebener Name> nur eine Liste mit einem Verzeichnis enthält und dieses Verzeichnis JAR-Dateien enthält, werden diese JAR-Dateien nicht durchsucht. Es wird nur in diesem Verzeichnis und nicht in JAR-Dateien nach statischen Dateien und JSP-Dateien gesucht. Wenn die statischen Dateien bzw. JSP-Dateien in einer JAR-Datei enthalten sind, können die statischen Dateien bzw. JSP-Dateien nicht im Ordner META-INF der JAR-Datei enthalten sein, da dies ein eingeschränkter Ordner ist. <vom Benutzer angegebener Name> muss einen vollständigen Pfad zur JAR-Datei enthalten.<fileServingAttributes name="extendedDocumentRoot" value="C:\EDR_directory,C:\my\path\to\jarEDR.jar"/>
Achtung: Sie können die angepasste Eigenschaft "com.ibm.ws.webcontainer.ServeWelcomeFileFromExtendedDocumentRoot" auf true setzen, um die Bereitstellung statischer Begrüßungsseiten aus einem Dokumentstammverzeichnis für statische Dateien zu aktivieren. Der Standardwert für diese angepasste Eigenschaft ist false.com.ibm.ws.webcontainer.ServeWelcomeFileFromExtendedDocumentRoot = true
Wenn die Eigenschaft "com.ibm.ws.webcontainer.ServeWelcomeFileFromExtendedDocumentRoot" auf true gesetzt ist, sucht der Web-Container in einem Dokumentstammverzeichnis vom Typ "extendedDocumentRoot" für statische Dateien nach einer statischen Begrüßungsdatei, die im Falle einer Anforderung mit einem gültigen partiellen URL bereitgestellt werden kann. Wenn in einer Anforderung beispielsweise nur der Anwendungskontext angegeben ist und eine Begrüßungsdatei als "index.html" definiert ist, muss die Eigenschaft gesetzt werden, vorausgesetzt, die Datei "index.html" soll aus einem Dokumentstammverzeichnis vom Typ "extendedDocumentRoot" für statische Dateien bereitgestellt werden.
Der Standardwert ist false.com.ibm.ws.webcontainer.enablepartialurltoextendeddocumentroot = true
Ist die Eigenschaft auf true gesetzt, schließt der Web-Container den Inhalt eines Dokumentstammverzeichnisses vom Typ "extendedDocumentRoot" für statische Dateien ein, wenn er angibt, ob eine eingehende Anforderung sich auf einen gültigen partiellen URL bezieht. Wenn eine Anforderung beispielsweise einen URL angibt, der mit /<application context>/<text> endet und <text> nicht einem Servlet oder einer statischen Datei entspricht, berücksichtigt der Web-Container diesen URL nur dann als gültigen partiellen URL, wenn <text> ein gültiges Verzeichnis der Anwendung ist. Daher muss diese Eigenschaft, wenn das Verzeichnis <text> nur in einem Dokumentstammverzeichnis vom Typ "extendedDocumentRoot" für statische Dateien vorhanden ist, gesetzt werden, damit der URL als gültiger partieller URL behandelt wird.
Wichtig: Diese Eigenschaften sind für Dokumentstammverzeichnisse vom Typ "preFragmentExtendedDocumentRoot" für statische Dateien nicht erforderlich. Analog dazu berücksichtigt der Web-Container beim Definieren des gültigen partiellen URL keine Dokumentstammverzeichnisse vom Typ "preFragmentExtendedDocumentRoot" und keine Dokumentstammverzeichnisse vom Typ "extendedDocumentRoot" für JSP-Dateien.