IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

[servlet] obtenir the root path [FAQ]


Sujet :

Servlets/JSP Java

  1. #1
    Membre éclairé Avatar de pmartin8
    Inscrit en
    Novembre 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 306
    Par défaut [servlet] obtenir the root path
    Bonjour

    Je voudrais comment obtenir le root de ma webapp. Jai esayer en utilisant le path "/" mais il va chercher le root de mon disque dur puisque ma servlet fonctionne en local ..


    Comment faire?
    Merci

  2. #2
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Hello,

    Quand tu dis recuperer le root de ta webapp, tu veux parler d'un stream dessus?

    Tu peux passer par le ServletContext.getRealPath() ou getResourcePaths(java.lang.String path) qui te liste tous les fichiers contenus dans ta webapp..

    J'espere que cela t'aidera, si tu as des questions , n'hesite pas!

  3. #3
    Membre éclairé Avatar de pmartin8
    Inscrit en
    Novembre 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 306
    Par défaut
    en fait je veux acceder a tous les fichiers XML qui sont dans mon dossier WEBINF

    avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     File[] lFileList = pFolder.listFiles();
    Dans ce cas ci mon probleme est de définir pFolder...

    Est-ce que ma question est plus claire?

    Jai requardé le getRealpath mais il prend un argument (path) en paramtre... je ne vois pas de quoi il sagit..

    Merci !

  4. #4
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Hello,

    J'avais ecrit cela dans le FAQ J2EE
    Citation Envoyé par fabszn
    Hello,

    Question : Comment accéder à une ressource dans l'arborescence d'une application web depuis une servlet

    Pour accéder à une ressource depuis une servlet, il faut passer par l'interface ServletContext. Plus exactement la methode : getRealPath(String relativePath).

    Cette methode recherche depuis la racine de l'application web le fichier passé en paramètre sous forme d'un chemin relatif.

    Voici un exemple d'implementation :

    La ressource à laquelle on veut accéder : le fichier de propriété test.properties
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #fichier de test
     
    clef1=hello World
    Emplacement du fichier dans l'application web :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ROOT_WEB_APP
    ___files
    ______test.properties
    ___WEB-INF
    Voila le code la servlet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
     
    package servlet;
     
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.Writer;
    import java.util.Properties;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
     
     
     
    public class TestServlet extends HttpServlet {
     
    	private static final String KEY = "clef1"; 
    	private static final String RELATIVE_PATH_FILE= "files/test.properties";
     
    	protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1)
    	throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		super.doGet(arg0, arg1);
    	}
     
    	protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
    	throws ServletException, IOException {
    		//flux d'entrée
    		InputStream in = null;
     
    		ServletContext context = getServletContext();
     
     
    		System.out.println("Affichage du chemin absolue du fichier via la methode getRealPath(String");
    		System.out.println(context.getRealPath(RELATIVE_PATH_FILE));
    		String path  = context.getRealPath("files/test.properties");		
     
    		if(path!=null)
    		{
    			in = new FileInputStream(path);
    		}
     
    		Properties prop = new Properties();
    		prop.load(in);
    		String result = prop.getProperty(KEY);
     
    		arg1.setContentType("text/html");
    		Writer writer = arg1.getWriter();
    		writer.write("Résultat : "+result);
    		writer.flush();
     
    	}
    }
    Remarque :
    Le chemin relatif déterminé par la variable RELATIVE_PATH_FILE
    doit être relatif à la racine de l'application web

    Le résultat à l'affichage sera :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Résultat : hello World
    La méthode getResourcePaths() permet de lister tous les fichiers contenu dans l'application web.
    Il faut que tu adaptes la variable RELATIVE_PATH_FILE au fichier que tu veux traiter.. et le tour est joué!!

  5. #5
    Membre éclairé Avatar de pmartin8
    Inscrit en
    Novembre 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 306
    Par défaut
    Cool

    Merci beaucoup!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/10/2008, 10h45
  2. Réponses: 2
    Dernier message: 20/02/2008, 08h46
  3. obtenir le chemin (path) de mon appli
    Par jeanmichmuch66 dans le forum C++Builder
    Réponses: 4
    Dernier message: 03/02/2008, 01h33
  4. Web application root path
    Par Invité dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 08/08/2006, 12h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo