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

Format d'échange (XML, JSON...) Java Discussion :

Que fait ce programme ?


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Mars 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2010
    Messages : 12
    Par défaut Que fait ce programme ?
    Bonjour,

    je travaille sur une application qui traitent des fichier XML , que je suis supposée améliorer. Mais je ne comprends pas ce que fais ce programme ? Pouvez vous m’expliquer le but de ce programme SVP ?

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        response.setContentType(CONTENT_TYPE);
        PrintWriter out = response.getWriter();
        String xmlFile = request.getParameter("file");
        System.out.println("fich validerdonnées="+xmlFile);
        xmlFile = xmlFile.substring(3);  
        // concatenation avec d:\edi du serveur jupiter, sue lequel les contrôleurs ont le droit 
        xmlFile = "d:\\edi\\" + xmlFile;
        BufferedReader fichReadXML = new BufferedReader(new FileReader(xmlFile));
        BufferedWriter fichWriteXML = new BufferedWriter(new FileWriter(xmlFile + "1"));
        int c = fichReadXML.read();
        char[] amp = {'\u0000', 'a', '\u0000', 'm', '\u0000', 'p', '\u0000', ';'};
                                   while (c != -1) {
                                                   fichWriteXML.write(c);
          if (c == '&') {
            fichWriteXML.write(amp);
            int c1 = fichReadXML.read();
            c1 = fichReadXML.read();
            int c2 = fichReadXML.read();
            c2 = fichReadXML.read();
            int c3 = fichReadXML.read();
            c3 = fichReadXML.read();
            int c4 = fichReadXML.read();
            c4 = fichReadXML.read();
            if ((c1 != 'a') || (c2 != 'm') || (c3 != 'p') || (c4 != ';')) {
              fichWriteXML.write(0);
              fichWriteXML.write(c1);
              fichWriteXML.write(0);
              fichWriteXML.write(c2);
              fichWriteXML.write(0);
              fichWriteXML.write(c3);
              fichWriteXML.write(0);
              fichWriteXML.write(c4);
            }
          }
          c = fichReadXML.read();
                                   }
        fichReadXML.close();
                                   fichWriteXML.close();
        fichReadXML = new BufferedReader(new FileReader(xmlFile + "1"));
                                   fichWriteXML = new BufferedWriter(new FileWriter(xmlFile));
        while ((c = fichReadXML.read()) != -1) {
          fichWriteXML.write(c);
        }
        fichReadXML.close();
        fichWriteXML.close();
        try{  
          java.io.InputStream   xmlStream   =   null;  
          // fichier xsl existant sur c:\edi du serveur jupiter
          String xsltFile = "file:\\\\\\C:\\edi\\genericNew.xsl"; 
          Source xsltSource = new StreamSource(xsltFile);
          java.net.URL   url   =   new   java.net.URL("file:\\\\\\"+xmlFile);
          java.net.URLConnection   conn   =   url.openConnection();  
          xmlStream   =   conn.getInputStream();  
          java.net.URL   url1   =   new   java.net.URL(xsltFile);  
          java.net.URLConnection   conn1   =   url1.openConnection();  
          javax.xml.transform.stream.StreamSource   style   =   new   javax.xml.transform.stream.StreamSource(conn1.getInputStream());  
          javax.xml.transform.stream.StreamSource   source   =   new   javax.xml.transform.stream.StreamSource(xmlStream);  
          javax.xml.transform.stream.StreamResult   result   =   new   javax.xml.transform.stream.StreamResult(out);
          javax.xml.transform.TransformerFactory   transFactory   =   javax.xml.transform.TransformerFactory.newInstance();  
          javax.xml.transform.Transformer   transformer   =   transFactory.newTransformer(style);  
     
              transformer.setParameter("nom", request.getParameter("nom"));
              transformer.setParameter("pass", request.getParameter("pass"));
              transformer.setParameter("db", request.getParameter("db"));
              transformer.setParameter("dir", xmlFile);
              transformer.transform(source, result);  
     
            }  catch (TransformerException e) {
          afficheErreur(out, e);
        } finally {
          out.close(); 
        }
     }

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    C'est sûr que de l'amélioration ne sera pas du luxe.

    Citation Envoyé par kaalaoui Voir le message
    Mais je ne comprends pas ce que fais ce programme ? Pouvez vous m’expliquer le but de ce programme SVP ?
    Non, on ne fera pas ton travail. Il vaut mieux te renseigner auprès des gens qui savent quelque chose à propos de ce programme (si personne ne sait rien, alors personne ne s'en sert et il n'y a rien à améliorer. Si quelqu'un s'en sert, il sait pourquoi il s'en sert. Sinon, la bonne réponse est de ne plus s'en servir le mettre sur un DVDrom au cas où et l'effacer. Bah tu vois bien, que quelqu'un sait ce que fait ce programme, finalement !)


    Mais bon, on peut toujours t'aider à apprendre à faire ton travail.
    Si tu ne comprends pas ce que fait ce programme, c'est que tu t'y prends mal. Un programme informatique, c'est une entrée et une sortie. Pour comprendre ce qu'il fait, l'important est de voir la sortie.
    Ici il n'y a pas de type de retour. La seule sortie est le paramètre response. Tu dois regarder ce qui arrive à l'objet response d'abord, et ignorer le reste. Le reste ne te servira que pour savoir qu'est-ce qui est fait avant de pouvoir toucher à response. C'est secondaire, tu verras après.

    Normalement tu devrais t'en sortir avec cette technique. Si ce n'est pas le cas, peux-tu nous parler de ce que tu as vu ? Où intervient l'objet response, et que font les lignes concernées ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Mars 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2010
    Messages : 12
    Par défaut
    je vous remercie pour votre réponse, le programme permet de traiter des fichiers xml, l'utilisateur se connecte à l'application , charge un fichier xml depuis le formulaire chargement, l'application se charge après d'enregistrer ses données dans une base de données oracle et les affiche à l'utilisateur.

    le code que j'ai mis reçois le fichier xml en entrée, je sais que dans la dernière partie, il fait une transformation xml -> html mais je ne comprends pas la première partie du code.

    sinon d'une façon générale si je veux refaire le code de cette application " qui permet de charger des fichiers xml par l'utilisateur, insérer les données dans une base de données , et les afficher ,quels sont les traitements que je dois faire sur ce fichiers xml??

    j’espère que ma question cette fois et plus pertinente que la première

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Citation Envoyé par kaalaoui Voir le message
    je vous remercie pour votre réponse, le programme permet de traiter des fichiers xml, l'utilisateur se connecte à l'application , charge un fichier xml depuis le formulaire chargement, l'application se charge après d'enregistrer ses données dans une base de données oracle et les affiche à l'utilisateur.
    Je ne vois aucun enregistrement en base de données.

    Citation Envoyé par kaalaoui Voir le message
    le code que j'ai mis reçois le fichier xml en entrée, je sais que dans la dernière partie, il fait une transformation xml -> html mais je ne comprends pas la première partie du code.
    Elle est vraiment très très mal foutue, je te le concède.
    Mais bon, "je comprends pas" ça mène à rien. Je te l'ai déjà dit, un programme c'est une entrée et une sortie.
    Quel genre de sortie cette "première partie" fait-elle ? À quel objet touche-t-elle, comment ? S'il n'y a pas de sortie, ça veut dire qu'elle n'a pas d'effet, et donc que l'effacer ne changerait rien.
    Est-ce que tu peux l'effacer ? Pourquoi ? Ça changerait quoi si tu l'enlevais ?

    C'est ça que tu dois te demander. Et je t'ai déjà dit que c'est comme ça qu'on fait, alors pourquoi tu l'as pas encore fait ?

    Citation Envoyé par kaalaoui Voir le message
    sinon d'une façon générale si je veux refaire le code de cette application " qui permet de charger des fichiers xml par l'utilisateur, insérer les données dans une base de données , et les afficher ,quels sont les traitements que je dois faire sur ce fichiers xml??
    Remarque préliminaire : cette "première partie" que tu ne comprends pas, recherche les & dans le fichier XML, pour les remplacer par & sauf si c'est déjà des & auquel cas il y touche pas.
    Normalement on a pas besoin de faire ça. Si le fichier contient des mauvais &, alors le fichier est mauvais et on ne fait rien avec lui. Pour travailler en XML il faut que le fichier soit bon, pas mauvais.
    Si toi tu es obligé d'accepter des mauvais XML qui ont des mauvais &, alors c'est un problème unique à toi et la solution sera unique à toi aussi. Bref, si t'es obligé de faire ce traitement préliminaire, tu peux toujours le refaire mieux que comme il est maintenant, mais il n'y a pas de solution générale, car ce n'est pas un problème général : c'est un problème que toi seul a, pas le reste du monde.

    Une fois que ce problème a été traité et que tu as un vrai fichier XML,
    la méthode est :
    - charger le fichier XML en mémoire, avec JDOM ou JAXB par exemple.
    - enregistrer les données en base de données. Comme tu veux, maintenant qu'elles sont en mémoire.
    => Ces deux premières étapes ne sont pas dans le code que tu nous montres. Parce que rien n'est mis en base de données, et que vu la technique utilisée pour le reste, charger le XML est inutile.
    - Créer une vue des données, pour l'afficher. Ce sont pas les techniques qui manquent. Appliquer une transformation XSLT sur le XML pour générer un HTML est une solution comme une autre. Mais si tu veux tu peux utiliser autre chose, comme les JSP, pour travailler sur les données chargées en mémoire.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. que fait ce programme java?
    Par freemasons dans le forum Langage
    Réponses: 5
    Dernier message: 17/01/2008, 16h45
  2. Que fait ce programme ?
    Par lebossejames dans le forum Assembleur
    Réponses: 3
    Dernier message: 08/03/2007, 05h32
  3. que fait ce programme?
    Par minen dans le forum C
    Réponses: 15
    Dernier message: 31/12/2006, 18h08
  4. Que fait ce programme de matrices ?
    Par Premium dans le forum C
    Réponses: 10
    Dernier message: 28/07/2006, 23h00
  5. Que fait ce programme ?
    Par babar56 dans le forum C
    Réponses: 32
    Dernier message: 16/01/2006, 21h31

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