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
Version imprimable
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
As-tu regardé dans la FAQ ?
Il y a ceci. Est-ce que c'est ce que tu souhaites ?
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
Euh, la FAQ c'est justement pour faire du POST.
Sinon :
http://hc.apache.org/httpcomponents-...lient/apidocs/
côté applet
Pourtant j'ai fait cela, mais je récupère rien côté servletCode:
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(); }
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) { // ... }
Voilà le code fonctionnel côté appletCode:
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(); }
et côté servlet
ca tourne ;) pour les suivantsCode:
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();