[Java] slash doublés pour un paramètre récupéré par ma servlet

slash doublés pour un paramètre récupéré par ma servlet [Java] - Programmation

Marsh Posté le 31-05-2002 à 11:32:18    

Dans le web.xml de ma serlvet, j'ai défini une variable.
Je récupère sa valeur avec ServletConfig.getInitParameter ("MonParam" );
Le paramètre en question, c'est un chemin de fichier. Et ce con me double le '\'
ce qui fait que mon "C:\MaRep\MonFichier.properties" devient "C:\\MaRep\\MonFichier.properties". Pas génial.
Alors, je pourrais surement enlever 1 '\' sur 2 avec les méthodes de String, ms ça me parait pas propre. Qqn à une explication (et la solution propre qui va avec !) !?

Reply

Marsh Posté le 31-05-2002 à 11:32:18   

Reply

Marsh Posté le 31-05-2002 à 11:45:57    

dans le fichier XML tu peux mettre c:\temp  
 
et tu recevras la string "c:\\temp" ce qui est correct au niveau Java.


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 31-05-2002 à 12:06:41    

DarkLord a écrit a écrit :

dans le fichier XML tu peux mettre c:\temp  
 
et tu recevras la string "c:\\temp" ce qui est correct au niveau Java.  




 
ha bon... ça me paraissait pas normal, ms bon, Darklord à parlé ! :D  
Merci...

Reply

Marsh Posté le 31-05-2002 à 12:13:02    

el_gringo a écrit a écrit :

 
 
ha bon... ça me paraissait pas normal, ms bon, Darklord à parlé ! :D  
Merci...  




 
c tout a fait normal, il echappe '\' avec un '\' ce qui donne donc '\\'  
sinon pour c:\temp java interpreterait en c:[tabulation]emp puisque '\' est le caractere d'echappement ...
 
koi, c pas clair ? :D

Reply

Marsh Posté le 31-05-2002 à 12:16:30    

d'une manière plus simple, lorsque tu es au niveau d'XML, c'est standard et donc pas lié à Java. Cela signifie que tu peux donner le path de la manière habituelle (c:\temp) sans te préoccuper de Java.
 
C'est la méthode qui recupere la valeur qui s'occupe de gérer les \\
 
Si tu vuex etre sur tu peux très bien faire c:/temp
 
mais bon c'est pas super propre :)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 31-05-2002 à 12:18:59    

Cette histoire de caractères d'échappement, ça existe en C (oui, je viens, et je suis encore aux 9/10° dans le C/C++), mais ces caractères d'échappement sont interprétés uniquement quand on a un chaine de char en dur dans le code (genre String Machaine = "C:\\Temp";). Ou alors dans une chaine formatée. Mais la variable en mémoire n'interprète pas les caractères d'échappement. C donc pas la peine que les '\' soient doublé pour une chaine en mémoire en C/C++.
G été claire aussi !? :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed