Dupliquer possible:
Comment charger un fichier .properties dans un jsp
J'essaie d'utiliser mon fichier de propriétés dans JSP mais cela ne fonctionnera pas correctement et génère une erreur.
Error: myproperties.properties (The system cannot find the file specified)
Ici, j'essaie d'accéder à mon dossier de propriété:
<%
try
{
FileInputStream fis = new FileInputStream("myproperties.properties");
Properties p = new Properties();
p.load(fis);
String LogFileName = p.getProperty("NameOfLogFile");
out.println(LogFileName);
}
catch (Exception e)
{// Catch exception if any
out.println(e.getMessage());
}
J'ai essayé de nombreuses manières d'accéder au fichier de propriété. Comment puis-je réparer ça?
créer un fichier test.properties dans votre package
pname=xyz
psurname=abc
créer un fichier jsp:
<%@ page language="Java" import="Java.util.*" %>
<%@ page import = "Java.util.ResourceBundle" %>
<% ResourceBundle resource = ResourceBundle.getBundle("test");
String name=resource.getString("pname");
String surname=resource.getString("psurname"); %>
<%=name %>
<%=surname%>
JSP s'exécute dans un conteneur de servlets, son répertoire de travail actuel est donc défini par le conteneur. Il s'agit généralement du répertoire dans lequel le conteneur est installé ou de son répertoire bin
. Dans tous les cas, ce n'est pas l'endroit où vous souhaitez stocker votre fichier de propriétés personnalisé.
Il existe 2 approches typiques pour faire ce dont vous avez besoin.
La première approche est bonne si votre fichier fait partie de votre application et que vous ne le modifiez jamais lors du déploiement. Dans ce cas, lisez-le à partir des ressources:
props.load(getClass().getResourceAsStream())
ou même mieux
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream())
La deuxième approche est utile si vous souhaitez modifier votre fichier de propriétés dans un environnement de déploiement. Dans ce cas, placez-le quelque part dans le système de fichiers en dehors de votre conteneur. Par exemple, /opt/mycompany/conf/myproperties.properties
sur Linux ou à n’importe quel autre endroit de votre choix. Vous devez maintenant utiliser le chemin absolu lors de la création de FileInputStream
.
Pour que le système soit mieux configurable, vous ne devez pas écrire le chemin du fichier de configuration dans le code. Une meilleure approche consiste à transmettre l’application à l’aide des propriétés du système, par exemple. ajoutez un paramètre tel que -Dmycompany.conf=/opt/mycompany/myprops.properties
lorsque vous exécutez votre serveur d'applications. Lorsque vous souhaitez lire le fichier, procédez comme suit:
new FileInputStream(System.getProperties("mycompany.conf"))
Maintenant, la configuration de votre système peut être contrôlée indépendamment par le déployeur.
Essayez de changer FileInputStream fis = new FileInputStream("myproperties.properties");
en FileInputStream fis = new FileInputStream(new File("myproperties.properties"));
Assurez-vous également que les classes que vous utilisez ont déjà été importées dans votre fichier jsp .
<%@ page import="Java.io.FileInputStream" %>
<%@ page import="Java.io.File" %>