it-swarm.com.de

Wie kann ich alle Dateien in einem Ordner auf Tomcat auflisten?

Ich habe einen Ordner mit vielen Excel-Dokumenten in Tomcat, und ich möchte, dass diese Dateien verfügbar sind, wenn ich die URL des Ordners im Browser aufgerufen habe (z. B. http; // localhost: 8080/myfolder).

wenn ich versuche, auf einen Ordner zuzugreifen, erhalte ich einen Fehler 404. Wenn ich versuche, auf eine Datei zuzugreifen, die sich in diesem Ordner befindet, funktioniert es.

31

Die DefaultServlet von Tomcat ist standardmäßig so konfiguriert, dass keine Verzeichnislisten angezeigt werden. Sie müssen die eigene /conf/web.xml-Datei von Tomcat öffnen (siehe Tomcat-Installationsordner), den <servlet>-Eintrag der DefaultServlet durchsuchen und dann den listings-Initialisierungsparameter von ändern

<init-param>
    <param-name>listings</param-name>
    <param-value>false</param-value>
</init-param>

zu

<init-param>
    <param-name>listings</param-name>
    <param-value>true</param-value>
</init-param>

Beachten Sie, dass dies die Ordner all Ihrer Webapp beeinflusst. Wenn Sie dies nur für einen einzelnen Ordner aktivieren möchten, müssen Sie selbst einen Servlet-Code schreiben, der die Aufgabe mithilfe der Java.io.File-API auf der Servlet-Seite erledigt, um die Dateien und einige Bündel HTML/CSS in der JSP-Seite zu sammeln präsentieren Sie es auf eine nette Art und Weise.

51
BalusC

Sie können es auch aktivieren, indem Sie von einem bestimmten URL-Muster aus beginnen ..__ Fügen Sie einfach das Servlet und das Servlet-Mapping zu Ihrer App web.xml hinzu

<servlet>
    <!-- List files in /ws-definitions -->
    <servlet-name>ListWsDefinitions</servlet-name>
    <servlet-class>org.Apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
        <param-name>debug</param-name>
        <param-value>0</param-value>
    </init-param>
    <init-param>
        <param-name>listings</param-name>
        <param-value>true</param-value>
    </init-param>
    <load-on-startup>100</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>ListWsDefinitions</servlet-name>
    <url-pattern>/ws-definitions/*</url-pattern>
</servlet-mapping>

In diesem Beispiel werden Verzeichnisse unter "/ ws-definitions /" abgehört.

19
swisswheel

Hier ist eine Dokumentation, die erklärt, wie das geht.

http://Tomcat.Apache.org/Tomcat-7.0-doc/default-servlet.html

Die Grundidee besteht darin, den Wert des Parameters listings in true im Haupt-web.xml von Tomcat zu ändern.

<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>
      org.Apache.catalina.servlets.DefaultServlet
    </servlet-class>
    <init-param>
        <param-name>debug</param-name>
        <param-value>0</param-value>
    </init-param>
    <init-param>
        <param-name>listings</param-name>
        <param-value>false</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

Aber oben werden alle Verzeichnisse angezeigt. Befolgen Sie zur Feinsteuerung die hier erläuterten Schritte:

http://Tomcat.Apache.org/Tomcat-7.0-doc/default-servlet.html#dir

4
adarshr

Wenn Sie Tomcat 6 (Servlet 2.5-Spezifikation) oder eine neuere Version verwenden, müssen Sie die Datei web.xml im Verzeichnis CATALINA_HOME/conf/nicht ändern, um die Verzeichnislisten anzuzeigen. Stattdessen sollten Sie die eigene web.xml-Datei der Webanwendung unter WEB-INF ändern.

Wie Adarshr erwähnt hat, müssen Sie dies der web.xml hinzufügen

<servlet>
  <servlet—name>default</servlet—name>
  <servlet-class>org.Apache.catalina.servlets.DefaultServlet</servlet-class>
  <init-param>
    <param-name>debug</param-name>
    <param-value>0</param-value>
  </init-param>
  <init-param>
    <param-name>listings</param-name>
    <param-value>true</param-value>
 </init-param>
 <load-on-startup>1</load-on-startup>
</servlet>

Sie müssen auch Folgendes hinzufügen

<servlet-mapping>
   <servlet-name>default</servlet-name>
   <url-pattern>/</url-pattern>
</servlet-mapping>
3
ezzadeen

Hier ist ein einfaches servlet das könnte ein Anfang für einen vollständig benutzerdefinierten Ansatz sein.

2
trashgod

Wenn das Ändern des Listungsparameters nicht funktioniert, versuchen Sie, die Liste der Begrüßungsdateien zu bearbeiten

standardwerte waren die folgenden:

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

bearbeiten Sie es wie folgt:

<welcome-file-list>
    <welcome-file></welcome-file>
    <welcome-file></welcome-file>
    <welcome-file></welcome-file>
</welcome-file-list>

beim Entfernen sollte es einwandfrei funktionieren

2
Rahul Roy

Wenn Sie nur versuchen, einen webbasierten Dateibrowser für Dateien außerhalb Ihres Servlets zu implementieren, können Sie die in diese Antwort erwähnte benutzerdefinierte Webapp verwenden.

0
kostmo