Précédent   Forum du club des développeurs et IT Pro > Java > Développement Web en Java > Applets
Applets Vos questions sur les Applets
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 17/09/2012, 09h46   #1
ifsera
Membre habitué
 
Inscription : 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
ifsera est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2012, 18h13   #2
Mathieu.J
Modérateur
 
Homme Mathieu
Ingénieur développement logiciels
Inscription : avril 2004
Messages : 1 180
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 180
Points : 1 828
Points : 1 828
As-tu regardé dans la FAQ ?
Il y a ceci. Est-ce que c'est ce que tu souhaites ?
Mathieu.J est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2012, 11h43   #3
ifsera
Membre habitué
 
Inscription : septembre 2008
Messages : 260
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 260
Points : 121
Points : 121
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
ifsera est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2012, 11h48   #4
Mathieu.J
Modérateur
 
Homme Mathieu
Ingénieur développement logiciels
Inscription : avril 2004
Messages : 1 180
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 180
Points : 1 828
Points : 1 828
Euh, la FAQ c'est justement pour faire du POST.

Sinon :
http://hc.apache.org/httpcomponents-...lient/apidocs/
Mathieu.J est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2012, 12h24   #5
ifsera
Membre habitué
 
Inscription : septembre 2008
Messages : 260
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 260
Points : 121
Points : 121
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)
	    {
	       // ...
	    }
ifsera est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2012, 11h07   #6
ifsera
Membre habitué
 
Inscription : septembre 2008
Messages : 260
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 260
Points : 121
Points : 121
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
ifsera est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 06h48.


 
 
 
 
Partenaires

Hébergement Web