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

Applets Java Discussion :

[Communication APPLET-SERVLET] string -> fichier


Sujet :

Applets Java

  1. #1
    Membre habitué Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Points : 166
    Points
    166
    Par défaut [Communication APPLET-SERVLET] string -> fichier
    Bonjour,

    J'ai réussi a faire marcher un script qui permet d'échanger des messages entre l'applet et une servlet ...
    Maintenant, ce que j'aimerais échanger c'est des fichiers ..

    Le code que j'utilise est celui ci :
    http://mindy.cs.bham.ac.uk/AppletServletExample/

    J'aurais besoin d'un coup de main car je ne vois pas comment faire ..
    BufferInputStream et BufferOutputStream .. oui ..
    mais encore ..

  2. #2
    Membre actif Avatar de wace
    Inscrit en
    Septembre 2003
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 224
    Points : 263
    Points
    263
    Par défaut
    Une applet « client », peut envoyer ou recevoir des données d'un serveur via une servlet à travers une connexion web « temps réel ».
    Il faut :
    créer un récepteur de flux dans l'applet,

    créer un émetteur de flux dans la servlet.

    Dans l'applet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    URL            monUrl = new URL("http://monServeur/maServlet");
    URLConnection monUrlc = monUrl.openConnection();
    InputStream        in = monUrlc.getInputStream();
    DataInputStream   dis = new DataInputStream(in);
    monResultat = dis.read();
    Dans la servlet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    OutputStream out = rep.getOutputStream();
    DataOutputStream dos = new DataOutputStream(out);
    dos.write("Resultat_Servlet");
    dos.close();
    Ensuite l'applet peut à intervalles réguliers communiquer avec la servlet.

    Normalement ca devrait fonctionner ... HIHIHIHI mais je viens de le faire a l'arrache ... alors test [/code]
    Les hommes naissent et demeurent libres et égaux en droits; les distinctions sociales ne peuvent être fondées que sur l'utilité commune
    [article 1er Declaration Universelle des Droits de l'Homme]
    www.baseball-grizzlys.com

  3. #3
    Membre habitué Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Points : 166
    Points
    166
    Par défaut
    merci pour cette explication détaillée ...

    Je vois bien le truc maintenant, mais est ce que je dois utiliser un
    DataIn(/Ou)putStream ou un FileIn(/Ou)tputStream ..

    Donc, la partie, établir la communication je comprends,
    mais échanger des fichiers ...

  4. #4
    Membre actif Avatar de wace
    Inscrit en
    Septembre 2003
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 224
    Points : 263
    Points
    263
    Par défaut
    Tu lui passe des Objets quels qu'ils soient donc ... Data !!!
    Les hommes naissent et demeurent libres et égaux en droits; les distinctions sociales ne peuvent être fondées que sur l'utilité commune
    [article 1er Declaration Universelle des Droits de l'Homme]
    www.baseball-grizzlys.com

  5. #5
    Membre habitué Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Points : 166
    Points
    166
    Par défaut
    je n'y arrive pas ...

  6. #6
    Membre actif Avatar de wace
    Inscrit en
    Septembre 2003
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 224
    Points : 263
    Points
    263
    Par défaut
    Fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ObjectOutputStream oos = new ObjectOutputStream (out);
    au lieur de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataOutputStream dos = new DataOutputStream(out);
    Comme ca tu peut utiliser la methode
    writeObject()

    et tu fait pareil dans l'otre sens.

    Mais je croyais ke tu voulais echanger des messages... c'est pour ca que je t'avais exemple qui echange des String
    dos.write("Resultat_Servlet");
    Les hommes naissent et demeurent libres et égaux en droits; les distinctions sociales ne peuvent être fondées que sur l'utilité commune
    [article 1er Declaration Universelle des Droits de l'Homme]
    www.baseball-grizzlys.com

  7. #7
    Membre habitué Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Points : 166
    Points
    166
    Par défaut
    je n'ai pas de méthode writeObject ..

  8. #8
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    Tu as bien construit un ObjetOuputStream???

  9. #9
    Membre habitué Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Points : 166
    Points
    166
    Par défaut
    désolé c Eclipse qui ramait un peu ..

    Un truc comme ca ???

    Coté servlet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	String filePath = "V:\\"+fileName;
    	File source = new File(filePath);
    	OutputStream out = resp.getOutputStream(); 
    	ObjectOutputStream oos = new ObjectOutputStream(out);
    	oos.writeObject(source);
    	oos.close();
    Coté applet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    InputStream in = servletConnection.getInputStream();
    ObjectInputStream ois = new ObjectInputStream(in);
    File tempFile = null;
    try {
       tempFile = (File) ois.readObject();
    } catch (ClassNotFoundException e) {
       e.printStackTrace();
    }

  10. #10
    Membre habitué Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Points : 166
    Points
    166
    Par défaut
    ca ne marche pas ..
    pas de bug mais le fichier qu'il m'écrit
    fait que 83 ko ...

  11. #11
    Membre habitué Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Points : 166
    Points
    166
    Par défaut
    bon j'ai quelque chose qui marche pour le download

    Applet :

    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
    	private File Download(String target) {
    	   try {
    		// Ouverture d'une communication avec la servlet  
    		 URL urlCodeBase = new URL(getCodeBase() + "");
    		 String base = getCodeBase().toString().substring(0,getCodeBase().toString().length() -1 );
    		 int fin = base.lastIndexOf('/');
    		 String racine = getCodeBase().toString().substring(0,fin);
    		 URL servletURL = new URL( racine + "/OGDE/aliasDownloadServlet"); 
    		 System.out.println("url de connexion à la servlet pour DOWNLOAD: "+servletURL.toString());
    		 URLConnection servletConnection = servletURL.openConnection();
    		 servletConnection.setDoOutput(true); 
    		 servletConnection.setUseCaches(false); 
     
    		 // Send file name to the servlet
    		 PrintStream out = new PrintStream(servletConnection.getOutputStream());
    		 out.println(target);
    		 out.close();
     
    		 //donwload the file and rename it ('cause it will be updated)
    		 InputStream in = servletConnection.getInputStream();		
    		 DataInputStream dis = new DataInputStream(in);
    		 File tempFile = new File(userhome+"/"+newname);
    		 FileOutputStream fos = new FileOutputStream(tempFile);
    		 byte[] tab = new byte[1024];
    		 int lu = dis.read(tab);
    		 while(lu>=0) {
    			fos.write(tab, 0, lu);
    			lu = dis.read(tab);
    		 }
    		 fos.flush();
    		 fos.close();
    		 dis.close();
    		 System.out.println("--> fichier recu :"+tempFile.toString());
    		 return tempFile;
    	   } catch (IOException e) {
    		 e.printStackTrace();
    		 return null;
    	   }	
    	 }
    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
    	String filePath = "V:\\"+fileName;
    	File source = new File(filePath);
    	OutputStream out = resp.getOutputStream(); 
    	DataOutputStream dos = new DataOutputStream(out);
    	FileInputStream fis = new FileInputStream(source);
    	byte[] tab = new byte[1024];
    	int lu = fis.read(tab);
    	while(lu>=0) {
    		dos.write(tab, 0, lu);
    		lu = fis.read(tab);
    	}
    	dos.flush();
    	dos.close();
    	fis.close();
    Si ca peut vous servir ..

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

Discussions similaires

  1. [info] communication Applet <--> Servlet
    Par Shiryu44 dans le forum Applets
    Réponses: 9
    Dernier message: 16/12/2010, 10h32
  2. Communication Applet-servlet : retour HTTP 505
    Par motorenshi dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 14/02/2007, 10h49
  3. [JSP][Servlet][Applet] communication Applet-Servlet-Jsp
    Par williamv dans le forum Applets
    Réponses: 1
    Dernier message: 06/04/2006, 16h32
  4. [Tomcat]communication applet-servlet
    Par Pill_S dans le forum Servlets/JSP
    Réponses: 16
    Dernier message: 06/04/2005, 18h05
  5. Réponses: 3
    Dernier message: 07/03/2005, 15h08

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