[servlet]Communication Applet->Servlet avec méthode POST
Mon but est d'envoyer un objet créé par l'applet vers une servlet. Mon problème c'est que je n'arrive pas à déclencher ma servlet quand je veux lui envoyer mon objet.
Mon applet contient un champ "nom" qui permet de créer un objet Personne avec un nom. Ensuite quand on appuie sur le bouton "Envoi" je crée une connexion entre mon applet et ma servlet pour lui envoyer mon objet. Et la, rien ne se passe...la méthode init de la servlet n'est même pas appelés a priori car elle devrait afficher un message dans ma console.
(L'utilité à terme est d'envoyer une image depuis l'applet vers la servlet)
J'utilise un serveur tomcat 5.0, ca peut venir de lui?
Avez vous une idée? Merci beaucoup par avance.
Voici mon code si besoin:
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
|
public class MonApplet extends Applet {
(...)
public void gestionEnvoi() {
try {
URL url = new URL(getDocumentBase(), "ComServlet");
URLConnection conServlet = url.openConnection();
if (conServlet instanceof HttpURLConnection)
{
((HttpURLConnection)conServlet).setRequestMethod("POST");
}
else
{
throw new Exception("this connection is NOT an HttpUrlConnection connection");
}
conServlet.setDoInput(true);
conServlet.setDoOutput(true);
conServlet.setUseCaches(false);
conServlet.setDefaultUseCaches (false);
conServlet.setRequestProperty("Content-Type", "application/octet-stream");
conServlet.connect();
ObjectOutputStream out = new ObjectOutputStream(conServlet.getOutputStream());
out.writeObject(new Personne(tfNom.getText()));
out.flush();
out.close();
}
catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
} |
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
|
public class ComServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
System.out.print("Dans doGet");
}
public void init() throws ServletException {
System.out.print("Dans Init");
}
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
try {
ObjectInputStream in = new ObjectInputStream(req.getInputStream());
Personne p = null;
try {
p = (Personne)in.readObject();
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
System.out.println("La servlet a recu : " + p.getNom());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} |