Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Membre habitué
    Inscrit en
    septembre 2008
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : septembre 2008
    Messages : 260
    Points : 121
    Points
    121

    Par défaut Communication applet - servlet

    Salut,

    j'ai un applet qui récupère des données via un logiciel tiers installé sur le client. J'aurai besoin de transmettre l'une de ces infos à une servlet.
    Si quelqu'un sait comment faire sans le passer dans l'url ?

    Merci

  2. #2
    Membre Expert
    Homme Profil pro Mathieu
    Ingénieur développement logiciels
    Inscrit en
    avril 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Nom : Homme Mathieu
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : avril 2004
    Messages : 1 181
    Points : 1 674
    Points
    1 674

    Par défaut

    As-tu regardé dans la FAQ ?
    Il y a ceci. Est-ce que c'est ce que tu souhaites ?

  3. #3
    Membre habitué
    Inscrit en
    septembre 2008
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : septembre 2008
    Messages : 260
    Points : 121
    Points
    121

    Par défaut

    ouais mais j'aimerai le faire entièrement en post, et éviter de passer des paramètres à travers l'url.

    J'ai vu quelques exemples sur le net, mais n'arrive à rien de concret pour l'instant.

    En get, je passe mes paramètres, cela marche même si je l'ai fait autrement.

    Là en gros j'aimerai passer un objet de mon applet vers ma servlet sur le clic d'un bouton qui se trouve dans l'applet.

    Mais ouais, il y a quelques pistes aussi au niveau de la faq

    Je mets du code dès que j'ai quelque chose de plus consistant

  4. #4
    Membre Expert
    Homme Profil pro Mathieu
    Ingénieur développement logiciels
    Inscrit en
    avril 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Nom : Homme Mathieu
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : avril 2004
    Messages : 1 181
    Points : 1 674
    Points
    1 674

    Par défaut

    Euh, la FAQ c'est justement pour faire du POST.

    Sinon :
    http://hc.apache.org/httpcomponents-...lient/apidocs/

  5. #5
    Membre habitué
    Inscrit en
    septembre 2008
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : septembre 2008
    Messages : 260
    Points : 121
    Points
    121

    Par défaut

    côté applet

    Code :
    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
     
    String servletPath = "http://localhost:8081/webApp1.6/servlet/connect";
    URL monUrl;
    try {
    monUrl = new URL(servletPath);
    URLConnection con = monUrl.openConnection();
    con.setDoInput(true);
    con.setDoOutput(true);
    //turn off caching
    con.setUseCaches(false);
    con.setDefaultUseCaches(false);
    		              						con.setRequestProperty("Content-Type","application/octet-stream");
    con.connect();
    ObjectOutputStream out = new ObjectOutputStream(con.getOutputStream());
     
    EidDataTransfer monObjet = new EidDataTransfer();
    monObjet.seteIdCardNumber("17090917");
     
    out.writeObject(monObjet);
    out.flush();
    out.close();
    } catch (MalformedURLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    Pourtant j'ai fait cela, mais je récupère rien côté servlet
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    		response.setContentType("application/x-java-serialized-object");
    	    try {
    	        ObjectInputStream inputFromApplet = new ObjectInputStream(request.getInputStream());
     
    	        EidDataTransfer myObject = (EidDataTransfer) inputFromApplet.readObject();
     
    	        System.out.println(myObject.geteIdCardNumber());
    	       ObjectOutputStream outputToApplet = new ObjectOutputStream(response.getOutputStream());
     
    	        outputToApplet.writeObject(myObject);
    	        outputToApplet.flush();
     
     
    	    }
    	    catch(Exception e)
    	    {
    	       // ...
    	    }

  6. #6
    Membre habitué
    Inscrit en
    septembre 2008
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : septembre 2008
    Messages : 260
    Points : 121
    Points
    121

    Par défaut

    Code :
    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
     
    URL urlservlet;
    try {
    urlservlet = new URL("http://localhost:8081/.../servlet/connect");								
     
    //message qu'on passe -
    String nomFichier = " - test d'émission côté applet - ";            					
    HttpURLConnection con = (HttpURLConnection)urlservlet.openConnection(); 
    System.out.println("tentative de connexion post "+ con);
     
    con.setDoInput(true); 
    con.setDoOutput(true); 
    con.setUseCaches(false); 
    			              				    con.setRequestMethod("POST");
    			              				    con.setRequestProperty("Content-Type", "application/x-java-serialized-object"); 
     
    con.connect();
     
    // Envoyer le texte saisi 
    OutputStream outstream = con.getOutputStream();
    ObjectOutputStream oos = new ObjectOutputStream(outstream); 
     
    oos.writeObject(nomFichier);
    oos.flush(); 
    oos.close(); 
    			              				 			              						if(con.getResponseCode() == HttpURLConnection.HTTP_OK) 
    { 				              						  System.out.println("on est connecté");		
    System.out.println("la requete a été envoyé");
    getAppletContext().showDocument(new URL("http://localhost:8081/.../servlet/connect"));
    }else{
    System.out.println("Connection echoué");	
    }
    con.disconnect();
    } catch (MalformedURLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    Voilà le code fonctionnel côté applet

    et côté servlet
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    response.setContentType("application/x-java-serialized-object");	
    System.out.println("DOPOST\n");
    InputStream in = request.getInputStream(); 
    ObjectInputStream inputFromApplet = new ObjectInputStream(in); 
    		try {
    			String reponse = (String)inputFromApplet.readObject();
    			System.out.println(reponse + " : reponse");
    		} catch (ClassNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
    inputFromApplet.close();
    ca tourne pour les suivants

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •