Comment puis-je liste tous les fichiers dans le dossier sur tomcat?
J'ai un dossier avec de nombreux documents excel en sur tomcat et je veux que ces fichiers soient disponibles quand je suis aller le dossier de l'url dans le navigateur (par exemple, http;//localhost:8080/mondossier)
au moment où j'essaie d'accéder à un dossier j'ai une erreur 404. si j'essaie d'accéder à un fichier qui est dans ce dossier, il fonctionne.
- poste le code que vous utilisez. Aussi, assurez-vous que vous ne prenez pas la saisie de l'utilisateur ici ou vous pouvez révéler /etc/shadow
- il ressemble à un petit problème d'autorisation.
- il n'y a pas de code. c'est juste un dossier avec les fichiers qu'il contient. je veux être en mesure de naviguer dans ce dossier de l'url, et d'afficher tous les fichiers qu'il contient comme serveur apache ne.
- si il n'y a pas de code alors, pourquoi avez-vous marquer comme java et jsp?
- Modifié les balises que je pense que ceux qui sont un peu plus utile que le java et jsp balises que vous avez eu
- J'ai editted le post original pour inclure la web-inf du fichier
- Ne faites pas attention aux commentaires de la nsa. Ce n'est pas le problème.
Vous devez vous connecter pour publier un commentaire.
La
DefaultServlet
de Tomcat est par défaut configuré pour ne pas afficher les listes de répertoires. Vous avez besoin d'ouvrir Tomcat propre/conf/web.xml
fichier (regardez dans le dossier d'installation de Tomcat), la recherche de la<servlet>
entrée de laDefaultServlet
et puis changer sonlistings
des paramètres d'initialisation deà
Gardez à l'esprit que cela affecte tous dossiers de votre webapp. Si vous voulez l'activer pour un seul dossier, vous avez à écrire quelques
Servlet
code vous-même qui fait le travail avec l'aide de lajava.io.File
API servlet côté pour collecter les fichiers et quelques tas de HTML/CSS, JSP côté de la présenter dans un joli mode.WEB-INF/web.xml
au lieu de Tomcat à l'échelle du siteconf/web.xml
. Vous aurez besoin de copier l'ensemble duDefaultServlet
déclaration, le programme d'installation, et de la cartographie dans votre propreWEB-INF/web.xml
mais une fois que vous faites cela, vous pouvez activer l'annuaire des listes pour une seule application web, au lieu de toutes les applications web déployées sur Tomcat instance.welcome-file
actuelle va plutôt montrer une liste de répertoire. Afin de discuter de l'annuaire des listes fournies par le conteneur sont déjà hors de spec, et n'est donc pas portable.Vous pouvez également activer à partir d'un modèle d'url.
Il suffit d'ajouter la servlet et servlet-mapping pour vous app web.xml
Dans cet exemple, les répertoires ci-dessous "/ws-définitions/" va être écouter.
Voici de la documentation expliquant comment faire.
http://tomcat.apache.org/tomcat-7.0-doc/default-servlet.html
L'idée de base est de changer la valeur de
listings
paramètretrue
dans les principauxweb.xml
de tomcat.Mais la-dessus s'exposer à tous les répertoires. Afin d'avoir un contrôle précis, suivez les étapes expliquées ici:
http://tomcat.apache.org/tomcat-7.0-doc/default-servlet.html#dir
Si vous utilisez Tomcat 6 (qui implémente la spécification Servlet 2.5) ou une version plus récente, vous n'avez pas à changer l'web.xml dans le CATALINA_HOME/conf/répertoire pour afficher les listes de répertoire. Au lieu de cela, vous devez modifier la web application web.xml fichier sous WEB-INF.
Comme Adarshr mentionné, c'est ce que vous devez ajouter à la web.xml
Vous devez également ajouter le suivant
Ici est un simple servlet qui pourrait être un début pour une approche personnalisée.
Si la modification des listes de param valeur ne fonctionne pas, essayez de modifier le message d'accueil de la liste
les valeurs par défaut sont les suivants:
modifier comme suit:
de les enlever, il devrait fonctionner parfaitement
Si vous essayez juste de mettre en œuvre un navigateur de fichiers web pour les fichiers à l'extérieur de votre servlet, vous pouvez utiliser la coutume webapp mentionné dans cette réponse.