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 :

Envoyer fichier vers le coté client


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Points : 85
    Points
    85
    Par défaut Envoyer fichier vers le coté client
    Bonjour,

    dans une jsp, j'utilise l'api de google map. Pour afficher les différents marker, j'utilise un fichier xml. Pour commencer, j'ai créé ce fichier à la main et l'ai mis dans le classpath. Jusque là pas de problème. Maintenant, je voudrai créer ce fichier du coté serveur à partir de la DB, mais je ne sais pas comment faire pour y accéder dans la jsp.

    ma 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
    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
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    <?xml version="1.0" encoding="ISO-8859-1" ?>
     
    <html>
      <head>
        <title>Organiser une r&eacute;union</title>
        <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAA70FDjbuxl9DIRqEfZN9IRT2yXp_ZAY8_ufC3CFXhHIE1NvwkxSNNUqIsSPkke4swap67gHzSSuiYA" type="text/javascript"></script>
        <script type="text/javascript">
        //<![CDATA[
        function load() {
          if (GBrowserIsCompatible()) {
            var map = new GMap2(document.getElementById("map"));        
            map.addControl(new GLargeMapControl());
            map.addControl(new GMapTypeControl());
            
            // Create a special marker for the base location
            function createBase(addressBase){
                    var geocoder = new GClientGeocoder();
                    geocoder.getLatLng(addressBase,
                            function(point) {
                                    if (!point) {
                                            alert(addressBase + " not found");
                                    } else {
                                        map.setCenter(point, 10);
                                        var tinyIcon = new GIcon(G_DEFAULT_ICON);
                                        tinyIcon.image = "http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png";
                                        tinyIcon.iconSize = new GSize(32, 32);
                                        markerOptions = { icon:tinyIcon };
                                        var marker = new GMarker(point, markerOptions);
                                        //alert(point);
                                        GEvent.addListener(marker, "click", function() {
                                            var myHtml = "<b><i> You </i></b>";                             
                                            map.openInfoWindowHtml(point, myHtml);
                                    });
                                        map.addOverlay(marker);                         
                                    }
                            }
                    );
            }
                
            // Creates a marker at the given point with the given name and firstname
            function createMarker(address, name, firstname) {
                    var geocoder = new GClientGeocoder();
                geocoder.getLatLng(address,
                    function(point) {
                            if (!point) {
                                    alert(address + " not found");
                            } else {
                                var marker = new GMarker(point);
                                GEvent.addListener(marker, "click", function() {
                                            var myHtml = "<i>" + name + " " + firstname + "</i>";                           
                                            map.openInfoWindowHtml(point, myHtml);
                            });
                                map.addOverlay(marker);                         
                            }
                    }
                );
            }
            
            GDownloadUrl("data.xml", function(data) {
              var xml = GXml.parse(data);
              var markers = xml.documentElement.getElementsByTagName("marker");
              for (var i = 0; i < markers.length; i++) {
                              var base = parseFloat(markers[i].getAttribute("base"));
                              var address = markers[i].getAttribute("address");
                  if(base == 1){
                      createBase(address);
                  } else {              
                          var name = markers[i].getAttribute("name");
                          var firstname = markers[i].getAttribute("firstname");
                          createMarker(address, name, firstname);
                  }
              }
            });
          }
        }
        //]]>
        </script>
      </head>
     
      <body onload="load()" onunload="GUnload()">
      <div id="map"  style="width: 800px; height:600px;"></div>
      </body>
    </html>
    Merci de vos réponses

  2. #2
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    Citation Envoyé par delph1983 Voir le message
    Maintenant, je voudrai créer ce fichier du coté serveur à partir de la DB, mais je ne sais pas comment faire pour y accéder dans la jsp.
    Si j'ai bien compris réucpérer les données à partir de la BD ne te pose pas de problème c'est l'écriture sur le serveur qui te pose problème ?


    Celon le serveur auquel tu dois acceder tu auras peut être un besoin d'un droit en écriture (si différent du serveur d'execution de ton application).
    Après il n'y a rien qui diffère que de créer un fichier en local.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Points : 85
    Points
    85
    Par défaut
    j'accède au fichier data.xml dans la jsp avec l'url http://localhost:8085/interface/data.xml. Mais je ne sais pas comment créer ce fichier dynamiquement coté serveur et où le mettre.

  4. #4
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    Pour l'emplacement du fichier en dehors du répertoire contenant l'application deployer sur le serveur,

    genre éviter le web-inf car lors d'un redéployment de l'application tous les fichiers générés seront supprimer.

    Après il faut voir l'utilisation qui sera fait de ces fichiers, seront ils consultés par des personnes ? si oui de quel manière une url et le document ce charge via le navigateur, un ftp ...

    A partir de ces informations la tu pourras savoir ou les placer.

    concernant la création du fichier un bout de code qui marche même si je pense que tu dois pouvoir faire/trouver mieux.

    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
     
    File filename = new File("c:/mes fichiers/monFichier.xml");
    FileOutputStream out = null;
    try
    {	
    	filename.createNewFile();
    	out = new FileOutputStream(filename);
    	PrintWriter printer = new PrintWriter(new OutputStreamWriter(out, "UTF-8"),true);
    	printer.println("la premiere ligne de mon fichier xml");
    	printer.close();
     
    }catch(Exception e)
    {	
    	e.printStackTrace();	
    }finally
    {
    	try
    	{
    		if(out != null) out.close();
    	}catch(Exception e)
    	{
    		e.printStackTrace();
    	}
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    522
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 522
    Points : 522
    Points
    522
    Par défaut
    Salut,

    Pour écrire du XML, il vaut mieux utiliser les API existantes.
    Voir voir ici :
    http://cynober.developpez.com/tutori...xml/jdom/#L2.3

  6. #6
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    dépend de ce que tu veux faire,
    pour l'écriture d'un simple fichier xml de quelques lignes,si tu n'a pas de données a extraire l'utilisation d'une API n'a rien d'obligatoire.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Points : 85
    Points
    85
    Par défaut
    je n'ai pas de problème pour créer et ecrire dans mon fichier tant que je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File dataFile = new File("C:\\Documents and Settings\\My Documents\\Work\\workspace\\Project\\data.xml");
    mais je ne peux pas utiliser le C:\..., vu que ça dépend d'où est installé le serveur.
    Je veux tout bêtement écrire sur le serveur à partir de mon controller. le mettre au même endroit que mon index.jsp par exemple

  8. #8
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    Il faut que tu récupères des informations concernant le serveur.

    j'ai quelques questions pour toi afin de peut être mieux pouvoir t'aiguiller

    ce fichier data.xml que tu dois créer,
    est ce que tu dois le conserver ?
    le metre à jours à chaque appel de ton application ?
    dois tu le conserver lorsque ton application est mis à jour ?
    le document data.xml devra être consulter via ton application ou à partir d'une URL ?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par link256 Voir le message
    Il faut que tu récupères des informations concernant le serveur.

    j'ai quelques questions pour toi afin de peut être mieux pouvoir t'aiguiller

    ce fichier data.xml que tu dois créer,est ce que tu dois le conserver ?
    oui
    le metre à jours à chaque appel de ton application ?
    Se mettre à jour ou se créer a chaque appel de la jsp qui l'utilise
    dois tu le conserver lorsque ton application est mis à jour ?
    Pas forcément
    le document data.xml devra être consulter via ton application ou à partir d'une URL ?
    Via l'application, dans la jsp.(par http://localhost:8085/interface/data.xml)

  10. #10
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    Si tu dois conserver ce fichier data.xml alors il faut absolument qu'il soit en dehors de ton répertoire applicatif.

    car si tu livres une nouvelle version de ton application et que le data.xml est dans le repertoire applicatif, tu es quasiment sûr de le perdre.
    Il faut donc qu'on te communique un répertoire dans lequel tu pourras placer le data.xml et que celui-ci soit accessible à partir de ton application, après c'est un simple parametrage dans un properties de conf pour stocker le chemin.


    tu dois passer par une servlet ou une jsp dans cas la pour consulter ton document et non saisir l'url en se finissant par http://localhost:8085/interface/data.xml



    plus un truc du style :

    http://localhost:8085/interface/lectureDataXML
    où lectureDataXML est le mapping associé et défini dans ton web.xml

    il ne faudra pas oublié d'indiqué dans la response que c'est du xml qui sera visible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    response.setContentType("application/xml; charset=utf-8");

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Points : 85
    Points
    85
    Par défaut
    ok, et si je ne dois pas le conserver?

  12. #12
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    Dans ce cas tu peux le placer dans le repertoire applicatif.

    Si tu n'as pas besoin de le conserver entre 2 utilisateurs non plus tu n'as même pas besoin d'enregistrer le fichier mais juste de renvoyer le flux XML sur ta jsp

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Points : 85
    Points
    85
    Par défaut
    et comment je fais pour le placer dans le répertoire applicatif?

  14. #14
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    Y a de nombreux post qui traite du sujet sur le forum,
    c'est une question assez récurrente

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Points : 85
    Points
    85
    Par défaut
    C'est bien parce que je ne trouve pas la solution que je pose la question.

Discussions similaires

  1. traitement de fichier de données coté client
    Par triaguae dans le forum Débuter
    Réponses: 1
    Dernier message: 18/03/2012, 21h32
  2. Envoyer fichier vers corbeille
    Par jprog46 dans le forum VBA Access
    Réponses: 0
    Dernier message: 07/11/2011, 16h01
  3. Envoyer fichier vers Bureau à distance
    Par cjacquel dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 26/01/2009, 09h52
  4. ouvrir un fichier excel coté client
    Par youss dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 27/07/2005, 14h42
  5. Socket:Envoyer du texte d'un serveur vers tout les clients
    Par cedm78 dans le forum Web & réseau
    Réponses: 7
    Dernier message: 01/08/2002, 16h40

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