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 :

charger un fichier XML dans une servlet


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 17
    Points
    17
    Par défaut charger un fichier XML dans une servlet
    bonjour,

    je cherche à envoyer le contenu d'un fichier XML vers un servlet, et envoyer le

    contenu de ce servlet vers une page JSP afin de l'exploiter par une liste

    déroulante, j'ai réussi à utliser jdom pour expoiter le fichier XML et afficher ses donnée.

    et j'ai pas une idée comment envoyer ces donner vers la page JSP et l'exploiter

    en utilisant servlet.

    j'ai essayé d'afficher le contenu de fichier XML sur le servelt mais ça pas fonctionner .

    voilà le code de 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
     
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
     
    		 org.jdom.Document document=null ;
    		 Element racine=null;
     
    		//on crée une instance de SAXBuilder
    		SAXBuilder sxb= new SAXBuilder();
    		try
    		{
    			PrintWriter out=response.getWriter();
     
    			document = sxb.build(new File("admin.xml"));
     
    			 racine = document.getRootElement();
     
    			String app=null;
     
    			List listAdmins = racine.getChildren("serveur");
     
    			Iterator i= listAdmins.iterator();
     
    			while(i.hasNext())
    			{
    			    Element courant = (Element)i.next();
     
     
    			   app=courant.getChild("status").getText();
    			   app+=app; 
     
     
    			}  
     
    			out.write(app);
     
    		}
    		catch(Exception e) {}
     
    		super.doGet(request, response);
    	}
    voilà le fichier XML
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <group id="1"  geolocal="tunisie">
       <serveur numserie="123" type="BD">
         <status>on</status>
         <nom>serveur application</nom>
         <ressources>
         	  <cpu>intel</cpu>
          	  <ram>2go</ram>
          	  <hd>500go</hd>
         </ressources>
         <applications>
           <application id="12" nom="mp3">application 1</application>
         </applications>
       </serveur> 
     </group>
    je suis vraiment bloqué à cette étape

  2. #2
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonjour

    j'ai l'impression qu'il y a confusion dans les termes servlet et JSP
    Le fichier XML est parsé dans la servlet et vous voulez afficher le contenu du fichier dans la page JSP.

    Maintenant quel est le format d'affichage que vous voulez ?
    Sous forme de texte avec une mise en page sous forme de liste :
    par exemple

    groupe: - serveur :
    - application: etc ...

    ou bien un affichage sous forme de tableau ?

    ou autre chose encore..

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    alors déjà tu peut supprimer le super.doGet();
    Ensuite il faut pas renvoyer une String, il faut charger la page JSP par getServletContext().getRequestDispatcher("/maPageJsp.jsp").forward(request, response);
    où maPageJsp.jsp est situé dans WebContent.

    Et pour ajouter la liste de String récupéré depuis ton xml par JDom il te suffit de faire request.setAttribute("app", app);
    Puis dans ta page jsp soit tu utilise les tagLib jstl core (regarde sur google ou sur ce site pour voir comment cela se manipule)
    soit tu écrit dans ta page jsp :
    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
     
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
     
    <%
    String app = (String) request.getAttribute("app");
    %>
     
    <html>
    <head>
    <title>exemple</title>
    </head>
    <body>
    <%=app%>
    </body>
    </html>
    Ce qui aura pour effet d'afficher ce que tu récupère de ton xml dans la page html retourné par l'appel de ta servlet.
    En sachant que je me suis basé sur ce que tu retourné par ta servlet c'est a dire une String concaténé et non une liste.

    Voilà. Si quelque chose n'est pas clair, hésite pas à demander

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 17
    Points
    17
    Par défaut charger un fichier XML dans une servlet
    Mon but c'est d'afficher une liste déroulante qui contient la liste des applications dans ma page JSP mais je dois utiliser le servlet pour la transmission des données qui sont déjà extrait du fichier XML.

    en premier lieu j'ai essayé d'afficher les données dans le servlet pour je sois sûr

    que l'extraction est bien faite, après je devrais essayer de l'envoyer vers la page

    JSP afin d'afficher ces données sous forme d'une liste déroulante.

    en plus je dois envoyer chaque application avec son id qui se trouve dans le fichier XML.

    aidez à comprendre les étapes à faire.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    j'ai essayé avec votre méthode en ajoutant le tag lib jstl

    mais ça pas fonctionner, la page jsp ne charge pas les données de mon servlet

    il m'affiche toujours "null" lors de l'exécution de la page jsp.

    pourtant j'ai ajouté le jar de jstl depuis jboss.

    voilà le code de page jsp
    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
     
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
     
     
    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     
     
     
    <% String app= (String) request.getAttribute("app"); %>
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
    <title>Insert title here</title>
    </head>
    <body>
    <%=app %>
    </body>
    </html>
    je pense que le problème d'affichage provient de servlet.

  6. #6
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Citation Envoyé par MG-openssl Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    			   app=courant.getChild("status").getText();
    			   app+=app;
    Ce code me paraît plus que douteux !

    Citation Envoyé par MG-openssl Voir le message
    j'ai essayé avec votre méthode en ajoutant le tag lib jstl

    mais ça pas fonctionner, la page jsp ne charge pas les données de mon servlet
    Normal il est pas utilisé, il ne sert donc à rien.

    Citation Envoyé par MG-openssl Voir le message
    je pense que le problème d'affichage provient de servlet.
    Quel est le code actuel de ta servlet ?
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    mon but est de parser des données du fichier XML dans la servlet

    après les envoyer vers une page JSP qui se trouve sous WebContent

    voilà le code de mon 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
     
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
    		 org.jdom.Document document=null;
    		Element racine=null;
     
    		//on crée une instance de SAXBuilder
     
     
    		try
    		{
     
     
    			SAXBuilder sxb= new SAXBuilder();
     
    			String app="acv";
     
    			document = sxb.build(new File("admin.xml"));
     
    			 racine = document.getRootElement();
     
     
     
    			List listAdmins = racine.getChildren("serveur");
     
    			Iterator i= listAdmins.iterator();
     
    			while(i.hasNext())
    			{
    			    Element courant = (Element)i.next();
     
     
    			   app=courant.getChild("status").getText();
    			   app+=app; 
     
     
    			}   
     
     
     
    			request.setAttribute("reponse", app);
    			 getServletContext().getRequestDispatcher("/test.jsp").forward(request, response);
     
     
     
     
    		}      
    		catch(Exception e) {}
     
     
     
    	}

  8. #8
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Citation Envoyé par MG-openssl Voir le message
    voilà le code de page jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <% String app= (String) request.getAttribute("app"); %>
    Citation Envoyé par MG-openssl Voir le message
    voilà le code de mon servlet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setAttribute("reponse", app);
    ;-)
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    j'ai essayé avec <% String app= (String) request.getAttribute("app"); %>

    mais ça pas marcher !!!!!

  10. #10
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    c'est normal c'est dans ta servlet que ça ne vas pas
    comme te l'as écrit Namek il faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.setAttribute("app", app);

  11. #11
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Citation Envoyé par MG-openssl Voir le message
    j'ai essayé avec <% String app= (String) request.getAttribute("app"); %>

    mais ça pas marcher !!!!!
    C'est déjà ce qui est marqué précédemment

    PS : Je suis pas un grand bonhomme vert avec des antennes :p
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  12. #12
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    je sais j'ai fait
    request.setAttribute("app", app);

    mais le résultat sur ma page jsp est toujours (null).

  13. #13
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    ben oui mais c'est pas ce qui est marqué sur le code de la servlet que t'as demandé Nemek

    t'as afficher le contenu de ta variable app dans un fichier de log ou dans ta console avec un system.out ?



    si ça se trouve la partie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     app=courant.getChild("status").getText();
    est null

  14. #14
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    j'ai utilisé un autre code plus simple pour m'assurer de contenu de la variable

    mais ça pas marcher !!!

    voilà le code de mon servlet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
    String var="bonjour";
     
    		request.setAttribute("reponse", var);
     
    		request.getRequestDispatcher("/test.jsp").forward(request, response);	
     
    }
    et le code de la page JSP
    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
     
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
     
    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     
    <html>
    <head>
    <title>Insert title here</title>
    </head>
    <body>
    <% String app= (String) request.getAttribute("reponse"); %>
    <%=app %>
    </body>
    </html>
    est ce qu'il y a quelqu'un qui a une idée à propos de ça !!!

  15. #15
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Si ca ne change rien alors :
    Solution 1
    1. Arrêter Tomcat
    2. Supprimer %TOMCAT_HOME%/work
    3. Supprimer %TOMCAT_HOME%/webapps/%APPLICATION_NAME%
    4. Redéployer ton application
    5. Démarrer Tomcat


    Solution 2
    Réinstalle Tomcat ...
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  16. #16
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Merci tout le monde ça marche correctement

  17. #17
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Appui sur ;-)
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

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

Discussions similaires

  1. Charger Fichiers XML dans une table avec SQL*LOADER
    Par devdev2003 dans le forum SQL
    Réponses: 2
    Dernier message: 14/01/2008, 10h40
  2. Intégration des fichier XML dans une base de données MySQL
    Par bebemoundjou dans le forum XQUERY/SGBD
    Réponses: 8
    Dernier message: 25/11/2005, 22h41
  3. traitement de fichier XML dans une Tache planifiée
    Par marivi dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 21/06/2005, 10h40
  4. Réponses: 3
    Dernier message: 13/12/2004, 13h54

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