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 :

afficher un contenu xml à partir d'une servlet


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 106
    Par défaut afficher un contenu xml à partir d'une servlet
    Bonjour,
    Je cherche à envoyer un fichier xml dans une servlete.
    Voilà un exemple après l’exécution de ma servlet il m’affiche en haut du fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?xml-stylesheet href=\"http://test.css\"?> au lieu de  <?xml version="1.0" encoding="UTF-8"?>
    la servlete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    response.setContentType("text/xml; charset=ISO-8859-1");
    sos = response.getOutputStream();
     
    sos.println("<?xml-stylesheet href=\"http://test.css\"?>");
     
    Personne personne= new Personne ();
    Nom nom  = new Nom();
    Prenom prenom = new Prenom() ;
     
    personne.setNom(nom) ;
    personne.setPrenom(prenom) ;
     
     
    personne.marshal(new java.io.OutputStreamWriter(sos));
    la reponse affiché :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     <?xml-stylesheet href=\"http://test.css\"?>
             <?xml version="1.0" encoding="UTF-8"?>
             <Personne>
               <Nom></Nom>
               <Prenom></Prenom>
             </Personne>

  2. #2
    Membre émérite Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Par défaut
    Je suis pas sûr que tu veux vraiment faire cela :
    Je cherche à envoyer un fichier xml dans une servlete.
    Cas 1. Tu veux -effectivement- envoyer un XML à UN servlet.
    Rien de plus simple, une requête POST, en multipart-file, avec en corps, le contenu XML. Tu récupéres le XML comme étant un upload file.

    Cas 2. Tu veux sortir un XML du servlet, l'envoyer en réponse au client Web, et demandé au client Web d'effectuer un affichage apr XLST.
    Il faut :
    - définir le content-type (MIME) de la réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sos.setContentType("text/xml");
    - définir le xlst comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <?xml-stylesheet href="http://domain/test.xls" type="text/xsl"?>
    et dans "test.xls", la référence au CSS -donc avec du HTML
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns="http://www.w3.org/TR/REC-html40" result-ns="">
    <xsl:template match="/">
     <HTML>
     <HEAD>
      <TITLE>Titre de la page</TITLE>
      <link rel="stylesheet" type="text/css" href="test.css" />
     </HEAD>
     <BODY BGCOLOR="#FFFFFF">
       <xsl:apply-templates/>
     </BODY>
     </HTML>
    </xsl:template >
    <!--
    Traitement des "matchies"
    -->
    </xsl:stylesheet>

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 106
    Par défaut
    salut,

    effectivement je veux sortir un XML du servlet, l'envoyer en réponse au client Web, et demandé au client Web d'effectuer un affichage apr css

    la methode setContentType() n'existe pas dans la sevlets (javax.servlet.ServletOutputStream sos) il ne reconnait pas la methode setContentType()

  4. #4
    Membre émérite Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Par défaut
    la methode setContentType() n'existe pas dans la sevlets
    Elle se trouve effectivement dans response ... Comme tu l'as mis dans le début.

    Mais cela ne fonctionne toujours pas :
    - ordre des <? ?> danx le xml
    - setContentType("text/xml") uniquement
    - ajout de test.xls en tant que page disponible sur le serveur
    ?

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 106
    Par défaut
    salut,
    merci pour ta réponse rapide.

    SI j'ai bien compri, mes balise xml (exemple : <nom></nom> <prenom> </prenom> ...) seront envoyé dans la servlet .
    je defini un fichier xlst et un fichier xls.
    ce que je comprend pas comment a l'affichage du xml qui est dans la reponse de la servlet il va chercher ces deux fichiers ?

    merci

  6. #6
    Membre émérite Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Par défaut
    C'est ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml-stylesheet href="http://domain/test.xls" type="text/xsl"?>
    Cette ligne demande au navigateur d'effectuer un affichage en utilisant le moteur xlst donnée. Comme le fichier xsl posséde un rendu HTML, tu obtients un html joli.

    Je pense que sur développez.com il y a de quoi faire, à la section XML... notement la FAQ.

  7. #7
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Citation Envoyé par Lorantus Voir le message
    Cas 1. Tu veux -effectivement- envoyer un XML à UN servlet.
    Non, une.

  8. #8
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 106
    Par défaut
    slt
    oui mais mes balise xml sont définie dans la servlet en utilisant la librairie castor.jar. elles no sont pas stocké dans un fichier xml.
    donc comment il va savoir qu'il doit chercher dans le fichier xls pour avoir le chemin des css ?

    merci

  9. #9
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Lorantus t'a donné la réponse.

    Avant de sérialiser ton objet métier avec la lib castor dans le outputstream de la réponse http, tu référence une feuille xsl pour une application côté client (navigateur).

    Cette feuille xsl transforme le xml transmis en une représentation html. Le css étant déclaré dans la feuille xsl, il se trouve également dans le html produit.

    Evidemment le processus ne peut aboutir que si l'url du xsl déclaré dans le xml point sur une ressource valide et que l'url du css déclaré dans le xsl pointe lui aussi vers une ressource existante.

Discussions similaires

  1. afficher un PNG sur un navigateur web à partir d'une servlet
    Par nicbond dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 17/03/2009, 17h18
  2. [DOM4J] récuperer les données xml posted a partire d'une servlet
    Par papita007 dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 22/05/2008, 21h14
  3. Java/XML generer un fichier XML a partir d'une Servlet
    Par fabricew59 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 03/04/2007, 11h43
  4. Réponses: 2
    Dernier message: 12/05/2006, 18h49
  5. [POI] Usage à partir d'une Servlet
    Par fredmorvant29 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 19/07/2004, 15h35

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