Newsgroup: it.comp.java
Titolo: post da applet a servlet

Innanzitutto grazie al ng. per la risposta. pero' l'esempio che mi avete
passato riguardava un get; non so come si possa fare un post dall'applet
alla servlet. qualcuno puo' incollarmi il codice d'esempio?
grazie e ciao
a tutti
--------------------------------
Inviato via 
http://usenet.iol.it

 a tutti
Ciao Simone
da come ricordo io e da questo esempio trovato su JavaWorld si tratta
semplicemente di aprire
un outputstream verso la servlet attraverso una normale URLConnection e
spedire i dati in questo modo:
parametro=valoreCodificatoInBase64
Dalla servlet chiaramente vedi i dati attraverso la normale request. Questo
è il codice di esempio.
PS: è importante (credo) leggere la risposta dalla servlet per non troncare
la connessione, come viene fatto al termine del codice riportato.
Spero di esserti stato utile.
Ciao
pole
    URL                 url;
    URLConnection urlConn;
    DataOutputStream    printout;
    DataInputStream     input;
    // URL of CGI-Bin script.
    url = new URL (getCodeBase().toString() + "env.cgi");
    // URL connection channel.
    urlConn = url.openConnection();
    // Let the run-time system (RTS) know that we want input.
    urlConn.setDoInput (true);
    // Let the RTS know that we want to do output.
    urlConn.setDoOutput (true);
    // No caching, we want the real thing.
    urlConn.setUseCaches (false);
    // Specify the content type.
    urlConn.setRequestProperty
("Content-Type", "application/x-www-form-urlencoded");
    // Send POST output.
    printout = new DataOutputStream (urlConn.getOutputStream ());
    String content =
"name=" + URLEncoder.encode ("Buford Early") +
"&email=" + URLEncoder.encode ("
buf...@known-space.com
");
    printout.writeBytes (content);
    printout.flush ();
    printout.close ();
    // Get response data.
    input = new DataInputStream (urlConn.getInputStream ());
    String str;
    while (null != ((str = input.readLine())))
{
System.out.println (str);
textArea.appendText (str + "\n");
}
    input.close ();

Grazie per l'aiuto. Pero' dalla servlet vorrei passare all'applet il
risultato di una query. Se mi confermi che non si possono passare oggetti,
in che modo posso far diventare un resultset uno stream e poterlo cosi'
passare all'applet? Come faccio poi a ciclarlo nell'applet per tirare fuori
i singoli valori? Scusa se non e' poco, ma sto impazzendo....
Grazi e
saluti.


 risultato di una query. Se mi confermi che non si possono passare oggetti,
... non l'ho mai detto :-) Basta modificare il content-type e puoi spedire
tutti i dati binari che vuoi,
quindi anche oggetti serializzati. Nel tuo caso io trasmetterei un Vector
(non un ArrayList perché su applet potrebbe non funzionare, non facendo
parte del JDK1.1) con dentro tanti oggetti quanti sono i record avuti in
risposta dalla query. Nel package javax.servlet.http trovi tutto ciò che ti
serve (cmq non è difficile: in sostanza devi solo sostituire la parte di
lettura della risposta nell'esempio che ti ho dato concatenando un
ObjectInputStream all'InputStream che c'è già e leggere tutto il Vector).
Ti consiglio di partire da qui per i metodi sulle servlet:
http://java.sun.com/products/servlet/2.2/javadoc/javax/servlet/http/package-
summary.html
e da qui per la serializzazione degli oggetti
http://java.sun.com/j2se/1.3/docs/guide/serialization/
Spero che queste indicazioni ti siano utili come spunto per la soluzione del
tuo problema.
Ciao e buon lavoro
pole