Newsgroup: it.comp.java
Titolo: RISOLTO: Post di dati da APPLET a JSP

In pratica a me interessave eseguire il post per scrivere su file, cosa
fatta nel seguente modo:
Ho usato questa applet che invia i dati alla pagina prestabilita e ne ricava
il risultato ottenuto (utile se per esempio vogliamo dare un messaggio di
conferma del salvataggio):
import java.awt.*;
import java.applet.*;
import java.io.*;
import java.util.*;
import java.net.*;
public class Happy extends Applet
    {
    private TextArea textArea = new TextArea (25, 70);
    public void init ()
 {
 try
     {
     URL   url;
     URLConnection urlConn;
     DataOutputStream printout;
     DataInputStream input;
     // URL of CGI-Bin script.
     url = new URL (getCodeBase().toString() + "testApplet.jsp");
     // 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 ("test");
     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 ();
     // Display response.
     add ("Center", textArea);
     }
 catch (MalformedURLException me)
     {
     System.err.println("MalformedURLException: " + me);
     }
 catch (IOException ioe)
     {
     System.err.println("IOException: " + ioe.getMessage());
     }
 } // End of method init().
    }  // End of class Happy.
Ho usato questa semplice pagina JSP che legge il primo dato nel posto e lo
scrive nel file
<%@ page isThreadSafe="true"
import="java.util.Enumeration,java.util.Vector,java.io.*" %>
<jsp:useBean id="gestFile" class="my.BeanScritturaFile" scope="session"/>
<%
Enumeration e = request.getParameterNames();
out.println("Parametro inviato:");
if (e.hasMoreElements() == true){
String str = ((String)e.nextElement());
out.println(" " + request.getParameter(str));
String f = application.getRealPath("text.txt");
out.println("<br>filez: " + f);
out.println("<br>Ritorno: " + gestFile.scrivi(request.getParameter(str),f));
}
%>
In questa versione pero' non avviene il redirect sulla pagina a cui mandare
i dati, in pratica viene usata la pagina JSP come un "servizio".
Questo e' tutto, ora sto studiando una versione per questo caso.
Notte a tutti.
Davide Cerbo

Dimenticavo, naturalmente l'applet funziona con qualsiasi pagina ASP, PHP,
CGI o qualsiasi altra tecnologia lato server che vi venga in mente (o almeno
dovrebbe:).
Altra cosa, una prima idea molto macchinosa sarebbe quella di creare delle
variabili di sessione contenenti momentaneamente i dati da poi cancellare
una volta utilizzati.
Oppure di far eseguire il redirect e far leggere il file di testo generato
alla pagina.
Etc...
Davide



Bene.
Ora che hai risolto il problema potresti cercare di levare le scriptlet
dalle jsp.
le scriptlet sono un po' antiestetiche, di difficile lettura per i grafici e
soprattutto non validabili da un qualsiasi parser xml
ciao Nicola
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Per scriplet intendi evitare cose tipo:
out.println("Ciao" + varTest)
ed usare: Ciao<%=varTest%>
???
Ciao
DAvide


Una buona jsp del 2005 non contiene
ne' out.println
ne' <%
ciao N


Scusa, allora non mi e' chiaro cosa intendi, mi fai un esempio, sono 3
giorni che uso JSP, un po' di comprensione:)
Ciao
Davide



scusa
si puo' estendere i tag html tramite le tag libraries, in modo tale da
tenere la pagina + pulita.
Se pero' ognuno si scrive i suoi e' un po' un casino.
Cosi di solito si usano oggi i JSTL che sono una lib di tld degli apache che
ormai sono abbastanza standard
infine se usi struts, hai altri tag e dovresti riuscire finalmente ad avere
la pagina pulita del tutto.
Se hai fretta e sei di passaggio su java lascia stare.
Se sei un nuovo adepto, allora pian piano ti conviene leggere queste cose e
iniziare a usarle.
ciao Nicola


L'applicazione che hai visto e' solo un dimostrativo. Cmq nell'applicazione
finale penso di utilizzare i tag-libs, non altro che per imparare qualcosa
di nuovo.
Ho visto l'argomento su questi due siti web:
http://www.soft-land.org/cgi-bin/doc.pl?doc=articoli/taglib
http://www.javaportal.it/docs/jstl.htm
E devo dire che mi hanno chiarito un po' le idee.
Ciao e grazie.
Davide