"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment accéder aux ressources du répertoire WAR/WEB-INF avec ServletContext ?

Comment accéder aux ressources du répertoire WAR/WEB-INF avec ServletContext ?

Publié le 2024-12-21
Parcourir:935

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

Accès aux ressources du répertoire WAR/WEB-INF avec ServletContext

Introduction :

Les applications Web Java stockent souvent les ressources essentielles dans le répertoire WAR/WEB-INF. Pour accéder à ces ressources, les développeurs peuvent exploiter l'API ServletContext.

Question :

Comment créer le chemin correct vers une ressource située dans le WAR/WEB-INF dossier, tel que "/war/WEB-INF/test/foo.txt"?

Réponse :

Il existe deux méthodes principales pour construire le chemin d'accès aux ressources dans le WAR/ Répertoire WEB-INF utilisant ServletContext :

1. Méthode getRealPath() :

Si le fichier WAR a été développé en un ensemble de fichiers, vous pouvez utiliser la méthode getRealPath() :

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

Cela renverra le chemin système complet vers la ressource.

2. Méthodes getResource() ou getResourceAsStream() :

Ces méthodes peuvent être utilisées que le fichier WAR soit développé ou non :

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

Notes supplémentaires :

  • La méthode getContext() mentionnée dans l'exemple de code est spécifique à l'application. Dans les pages JSP, il est disponible en tant que « contexte », tandis que dans les servlets, il est obtenu à partir de ServletConfig lors de l'initialisation.
  • La méthode getRealPath() peut ne pas fonctionner si le conteneur de servlets n'extrait pas le fichier WAR.
  • Les méthodes getResource() et getResourceAsStream() sont fiables et fonctionnent dans tous les scénarios de déploiement.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3