<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE>Java CGI HOWTO: Utilizzo delle Classi Java.</TITLE> <LINK HREF="Java-CGI-HOWTO-6.html" REL=next> <LINK HREF="Java-CGI-HOWTO-4.html" REL=previous> <LINK HREF="Java-CGI-HOWTO.html#toc5" REL=contents> </HEAD> <BODY> <A HREF="Java-CGI-HOWTO-6.html">Avanti</A> <A HREF="Java-CGI-HOWTO-4.html">Indietro</A> <A HREF="Java-CGI-HOWTO.html#toc5">Indice</A> <HR> <H2><A NAME="s5">5. Utilizzo delle Classi Java.</A></H2> <P>Attualmente sono supportate tre classi principali definite nelle sezioni <A HREF="#cgi-class">CGI</A>, <A HREF="#email-class">Email</A> e <A HREF="#html-class">HTML</A>. Sto considerando di aggiungere le classi per trattare l'input e l'output MIME-formatted rispettivamente con MIMEin & MIMEout. <P>Esistono anche classi di supporto e di test definite nelle sezioni <A HREF="#cgi-test-class">CGI_Test</A>, <A HREF="#email-test-class">Email_Test</A> e <A HREF="#email-test-class">HTML_Test</A>. L'utilizzo di queste classi è stato concepito con lo scopo di testare la vostra installazione. Ciononostante possono essere utilizzate come punto di partenza per i vostri programmi in Java che fanno uso di questa libreria di classi. La classe descritta nella sezione <A HREF="#text-class">Text</A> è la superclasse per entrambe le classi <CODE>Email</CODE> e <CODE>HTML</CODE>. <P> <P> <P> <H2><A NAME="cgi-class"></A> <A NAME="ss5.1">5.1 CGI</A> </H2> <P> <P> <P> <P> <H3>Sintassi della Classe</H3> <P><CODE>public class CGI</CODE> <P> <P> <P> <H3>Descrizione della Classe</H3> <P>La classe CGI mantiene la variabile d'ambiente ``CGI Information'' impostata dal server web e il nome/valore inviato da un form quando si decide di selezionare l'azione <B>submit</B>. Tutte le informazioni sono memorizzate in un oggetto della classe <CODE>Properties</CODE>. <P>Questa classe è nel pacchetto ``Orbits.net''. <P> <P> <P> <H3>Sommario dei membri della Classe</H3> <P> <HR> <PRE> CGI() // Costruttore. getNames() // Prende la lista di nomi. getValue() // Prende il valore del form specificando il nome. </PRE> <HR> <P> <P> <P> <H3>Vedi Anche</H3> <P><CODE>CGI_Test</CODE>. <P> <P> <P> <H3>CGI()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Costruisce un oggetto che contiene i dati CGI disponibili. <DT><B>Sintassi</B><DD><P><CODE>public CGI()</CODE> <DT><B>Descrizione</B><DD><P>Quando viene costruito un oggetto CGI, tutte le informazioni disponibili vengono assorbite ed immagazzinate localmente al nuovo oggetto. </DL> <P> <P> <P> <H3>getNames()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Lista i nomi che sono definiti per avere valori corrispondenti. <DT><B>Sintassi</B><DD><P><CODE>public Enumeration getKeys ()</CODE> <DT><B>Descrizione</B><DD><P>Fornisce la lista intera di nome per i quali sono definiti valori corrispondenti. <DT><B>Restituisce</B><DD><P>Una <CODE>Enumerazione</CODE> di tutti i nomi definiti. </DL> <P> <P> <P> <H3>getValue()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Ricerca i <B>valori</B> associati al <B>nome</B> specificato. <DT><B>Sintassi</B><DD><P><CODE>public String getValue ( String name )</CODE> <DT><B>Descrizione</B><DD><P>Questo metodo fornisce una corrispondenza tra <CODE>nomi</CODE> e <CODE>valori</CODE> inviati da un form HTML. <DT><B>Parametri</B><DD><P> <DL> <DT><B>name</B><DD><P>La chiave con la quale i valori vengono selezionati. </DL> <DT><B>Restituisce</B><DD><P>Una <CODE>Stringa</CODE> che contiene il valore. </DL> <P> <P> <P> <H2><A NAME="cgi-test-class"></A> <A NAME="ss5.2">5.2 CGI_Test</A> </H2> <P>Questa classe fornisce un esempio di come usare la classe <CODE>CGI</CODE> ed anche un programma di test che può essere usato per avere la conferma che il pacchetto <EM>Java CGI</EM> funzioni correttamente. <P> <P> <P> <H3>Sommario dei membri della Classe</H3> <P> <HR> <PRE> main() // Programma main(). </PRE> <HR> <P> <P> <P> <H3>Vedi Anche</H3> <P><CODE>CGI</CODE>. <P> <P> <P> <H3>main()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Fornire un metodo <CODE>main()</CODE>. <DT><B>Sintassi</B><DD><P><CODE>public static void main( String argv[] )</CODE> <DT><B>Descrizione</B><DD><P>Questo è il punto di ingresso del programma CGI che restituisce una lista delle coppie nomi/valori disponibili e il loro valore attuale. <DT><B>Parametri </B><DD><P> <DL> <DT><B>argv[]</B><DD><P>Argomenti passati al programma dallo script <CODE>java.cgi</CODE>. Attualmente inutilizzato. </DL> </DL> <P> <P> <P> <H2><A NAME="email-class"></A> <A NAME="ss5.3">5.3 Email</A> </H2> <P> <P> <P> <P> <H3>Sintassi della Classe</H3> <P><CODE>public class Email extends Text</CODE> <P> <P> <P> <H3>Descrizione della Classe</H3> <P>I Messaggi sono costruiti con la classe <CODE>Text</CODE> e i metodi <CODE>add*()</CODE> e i metodi specifici e-mail-specific aggiunti a da questa classe. Quando completo, il messaggio viene inviato ai suoi destinatari. <P>Questa classe è contenuta nel pacchetto ``Orbits.net''. <P> <P> <P> <H3>Sommario dei membri della Classe</H3> <P> <HR> <PRE> Email() // Costruttore. send() // Invia un messaggio e-mail. sendTo() // Aggiunge un destinatario al messaggio. subject() // Imposta il Subject del messaggio. </PRE> <HR> <P> <P> <P> <H3>Vedi Anche</H3> <P><CODE>Email_Test, Text</CODE>. <P> <P> <P> <H3>Email()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Costruisce un oggetto che conterrà un messaggio email. <DT><B>Sintassi</B><DD><P><CODE>public Email()</CODE> <DT><B>Descrizione</B><DD><P>Costruisce un messaggio vuoto da completare da parte dei metodi Email. <DT><B>Vedi Anche</B><DD><P><CODE>Text</CODE>. </DL> <P> <P> <P> <H3>send()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Invia un messaggio e-mail. <DT><B>Sintassi</B><DD><P><CODE>public void send ()</CODE> <DT><B>Descrizione</B><DD><P>Formatta ed invia il messaggio. Se non viene specificato un indirizzo di destinazione, non viene intrapresa alcuna azione. </DL> <P> <P> <P> <H3>sendTo()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Aggiunge una destinazione per questo messaggio. <DT><B>Sintassi</B><DD><P><CODE>public String sendTo ( String address )</CODE> <DT><B>Descrizione</B><DD><P>Aggiunge <CODE>address</CODE> alla lista delle destinazioni per questo metodo. Non esiste limite al numero di destinatari che un messaggio e-mail può avere. Sono sicuro che costruendo una lista abbastanza grande, potreste fare in modo da superare la memoria oppure eccedere la dimensione della lista di parametri che il vostro <EM>Agente di Trasporto della Posta</EM> è in grado di accettare. <DT><B>Parametri</B><DD><P> <DL> <DT><B>address</B><DD><P>Una destinazione a cui inviare il messaggio. </DL> </DL> <P> <P> <P> <H3>subject()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Imposta l'oggetto/subject per questo messaggio. <DT><B>Sintassi</B><DD><P><CODE>public void subject ( String subject )</CODE> <DT><B>Descrizione</B><DD><P>Questo metodo imposta il testo per la riga <CODE>Subject:</CODE> di un messaggio email. Se vengono chiamati più di una volta, viene utilizzato il subject più recente. <DT><B>Parametri</B><DD><P> <DL> <DT><B>subject</B><DD><P>Il testo della riga <CODE>Subject:</CODE> del messaggio. </DL> </DL> <P> <P> <P> <H2><A NAME="email-test-class"></A> <A NAME="ss5.4">5.4 Email_Test</A> </H2> <P>Questa classe fornisce sia un esempio di come utilizzare la classe <CODE>Email</CODE> sia un programma di test per verificare che il pacchetto <EM>Java CGI</EM> funzioni correttamente. <P> <P> <P> <H3>Sommario dei membri della Classe</H3> <P> <HR> <PRE> main() // Programma main(). </PRE> <HR> <P> <P> <P> <H3>Vedi Anche</H3> <P><CODE>Email</CODE>. <P> <P> <P> <H3>main()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Fornisce un metodo <CODE>main()</CODE>. <DT><B>Sintassi</B><DD><P><CODE>public static void main( String argv[] )</CODE> <DT><B>Descrizione</B><DD><P>Questo è il punto di ingresso del programma CGI che restituisce una lista delle coppie nomi/valori disponibili e il loro valore attuale. Invierà anche questa lista agli indirizzi specificati nella variabile <CODE>Email</CODE>. <DT><B>Parametri </B><DD><P> <DL> <DT><B>argv[]</B><DD><P>Argomenti passati al programma dallo script <CODE>java.cgi</CODE>. Attualmente inutilizzato. </DL> </DL> <P> <P> <P> <H2><A NAME="html-class"></A> <A NAME="ss5.5">5.5 HTML</A> </H2> <P> <P> <P> <P> <H3>Sintassi della Classe</H3> <P><CODE>public class HTML extends Text</CODE> <P> <P> <P> <H3>Descrizione della Classe</H3> <P>I Messaggi vengono costruiti con i metodi <CODE>Text</CODE> class <CODE>add*()</CODE> e dai metodi specifici-HTML aggiunti da questa classe. Quando completo, il messaggio viene inviato alle sue destinazioni. <P>Attualmente non esiste un controllo di errore per avere la conferma che i metodi di costruzione delle liste siano usati nell'ordine corretto: il programmatore deve prestare attenzione a non violare la sintassi HTML. <P>Questa classe è nel pacchetto ``Orbits.net''. <P> <P> <P> <H3>Sommario dei membri della Classe</H3> <P> <HR> <PRE> HTML() // Costruttore. author() // Imposta il nome dell'autore del documento. definitionList() // Avvia una definition list. definitionListTerm() // Aggiunge un termine ad una definition list. endList() // Termina una lista. listItem() // Aggiunge una entrata ad una lista. send() // Invia un messaggio HTML. title() // Imposta il testo per il titolo del documento. </PRE> <HR> <P> <P> <P> <H3>Vedi Anche</H3> <P><CODE>HTML_Test, Text</CODE>. <P> <P> <P> <H3>HTML()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Costruisce un oggetto che contiene un messaggio HTML. <DT><B>Sintassi</B><DD><P><CODE>public HTML()</CODE> <DT><B>Descrizione</B><DD><P>Costruisce un messaggio vuoto da completare con i metodi HTML. <DT><B>Vedi Anche</B><DD><P><CODE>Text</CODE>. </DL> <P> <P> <P> <H3>author()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Imposta il nome dell'autore del documento. <DT><B>Sintassi</B><DD><P><CODE>public void author ( String author )</CODE> <DT><B>Descrizione</B><DD><P>Imposta il nome dell'autore del documento in <CODE>author</CODE>. <DT><B>Parametri</B><DD><P> <DL> <DT><B>author</B><DD><P>Il testo da usare come autore di questo messaggio. </DL> <DT><B>Vedi Anche</B><DD><P><CODE>title()</CODE>. </DL> <P> <P> <P> <H3>definitionList()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Avvia una definition list. <DT><B>Sintassi</B><DD><P><CODE>public void definitionList ()</CODE> <DT><B>Descrizione</B><DD><P>Avvia una definition list. Una <EM>definition list</EM> è una particolare lista per la quale ogni elemento di ingresso della lista è <EM>term</EM> seguito dalla definizione <EM>text</EM> per quel termine. L'avvio di una definition list dovrebbe essere seguito dalla creazione di almeno un termine/testo e una chiamata al metodo <CODE>endList()</CODE>. <EM>Da notare che, attualmente, le liste non possono essere nidificate</EM> <DT><B>Vedi Anche</B><DD><P><CODE>definitionListTerm()</CODE>, <CODE>endList()</CODE>, <CODE>listItem()</CODE>. </DL> <P> <P> <P> <H3>definitionListTerm()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Aggiunge un termine alla definition list. <DT><B>Sintassi</B><DD><P><CODE>public void definitionListTerm ()</CODE> <DT><B>Descrizione</B><DD><P>Aggiunge un termine alla definition list. Il testo dell'elemento lista corrente deve essere appeso al messaggio dopo che questo metodo viene chiamato e prima di un corrispondente metodo <CODE>listItem</CODE> venga chiamato. <DT><B>Vedi Anche</B><DD><P><CODE>definitionList()</CODE>, <CODE>listItem()</CODE>. </DL> <P> <P> <P> <H3>endList()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Termina una lista. <DT><B>Sintassi</B><DD><P><CODE>public void endList ()</CODE> <DT><B>Descrizione</B><DD><P>Termina una lista. Questo metodo elimina una lista. <EM>Da notare che al momento attuale, le liste non possono essere nidificate.</EM> <DT><B>Vedi Anche</B><DD><P><CODE>definitionList()</CODE>. </DL> <P> <P> <P> <H3>listItem()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Aggiunge una voce nella lista. <DT><B>Sintassi</B><DD><P><CODE>public void listItem ()</CODE> <DT><B></B><DD><P><CODE>public void listItem ( String item )</CODE> <DT><B></B><DD><P><CODE>public boolean listItem ( String term, String item )</CODE> <DT><B>Descrizione</B><DD><P>Aggiunge una voce alla lista. Se viene usato il primo form, il testo dell'elemento lista corrente deve essere accodato al messaggio dopo che questo metodo viene chiamato e prima che venga chiamata ogni altra lista di metodi. Nel secondo e terzo form, il testo <CODE>item</CODE> è specificato come un parametro al metodo invece di (o in aggiunta) essere accodato al messaggio. Il terzo form è specifico per le definition lists e fornisce sia i termini che una definizione dell'ingresso della lista. <DT><B>Parametri</B><DD><P> <DL> <DT><B>item</B><DD><P>Il testo di questo ingresso di lista. <DT><B>term</B><DD><P>Il testo di questa parte del termine di ingresso della definition list. </DL> <DT><B>Vedi Anche</B><DD><P><CODE>definitionList()</CODE>, <CODE>definitionListTerm()</CODE>, <CODE>endList()</CODE>. </DL> <P> <P> <P> <H3>send()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Invia un messaggio HTML. <DT><B>Sintassi</B><DD><P><CODE>public void send ()</CODE> <DT><B>Descrizione</B><DD><P>Invia un messaggio HTML. </DL> <P> <P> <P> <H3>title()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Imposta il testo per il titolo del documento. <DT><B>Sintassi</B><DD><P><CODE>public void title ( String title )</CODE> <DT><B>Descrizione</B><DD><P>Imposta il testo per il titolo del documento. <DT><B>Parametri</B><DD><P> <DL> <DT><B>title</B><DD><P>Il testo del titolo del documento. </DL> <DT><B>Vedi Anche</B><DD><P><CODE>author()</CODE>. </DL> <P> <P> <P> <H2><A NAME="html-test-class"></A> <A NAME="ss5.6">5.6 HTML_Test</A> </H2> <P>Questa classe fornisce sia un esempio di come usare la classe <CODE>HTML</CODE> sia un programma di test che può essere usato per avere la conferma che il pacchetto <EM>Java CGI</EM> funzioni correttamente. <P> <P> <P> <H3>Sommario dei membri della Classe</H3> <P> <HR> <PRE> main() // Programma main(). </PRE> <HR> <P> <P> <P> <H3>Vedi Anche</H3> <P><CODE>HTML</CODE>. <P> <P> <P> <H3>main()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Fornire un metodo <CODE>main()</CODE>. <DT><B>Sintassi</B><DD><P><CODE>public static void main( String argv[] )</CODE> <DT><B>Descrizione</B><DD><P>Questo è il punto di ingresso del programma CGI che restituisce una lista delle coppie nomi/valori disponibili e il loro valore attuale. <DT><B>Parametri </B><DD><P> <DL> <DT><B>argv[]</B><DD><P>Argomenti passati al programma dallo <CODE>java.cgi</CODE>. Attualmente inutilizzato. </DL> </DL> <P> <P> <P> <H2><A NAME="text-class"></A> <A NAME="ss5.7">5.7 Text</A> </H2> <P> <P> <P> <P> <H3>Sintassi delle Classi</H3> <P><CODE>public abstract class Text</CODE> <P> <P> <P> <H3>Descrizione delle Classi</H3> <P>Questa classe è la superclasse delle classi <CODE>Email</CODE> e <CODE>HTML</CODE>. I Messaggi sono costruiti con i metodi di questa classe poi completati e formattati con i metodi delle sottoclassi. <P>Questa classe è contenuta nel pacchetto ``Orbits.text''. <P> <P> <P> <H3>Member Summary</H3> <P> <HR> <PRE> Text() // Costruttore. add() // Aggiunge testo a questo oggetto. addLineBreak() // Aggiunge un terminatore di riga. addParagraph() // Aggiunge un terminatore di paragrafo. </PRE> <HR> <P> <P> <P> <H3>Vedi Anche</H3> <P><CODE>Email</CODE>, <CODE>HTML</CODE>. <P> <P> <P> <H3>add()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Aggiunge del testo a questo elemento. <DT><B>Sintassi</B><DD><P><CODE>public void add ( char addition )</CODE> <DT><B></B><DD><P><CODE>public void add ( String addition )</CODE> <DT><B></B><DD><P><CODE>public void add ( StringBuffer addition )</CODE> <DT><B>Descrizione</B><DD><P>Aggiunge <CODE>addition</CODE> ai contenuti di questo elemento di testo. <DT><B>Parameter</B><DD><P> <DL> <DT><B>addition</B><DD><P>Testo da aggiungere all'elemento di testo. </DL> <DT><B>Vedi Anche</B><DD><P><CODE>addLineBreak()</CODE>, <CODE>addParagraph()</CODE>. </DL> <P> <P> <P> <H3>addLineBreak()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Forza una terminazione di riga nel punto esatto del testo. <DT><B>Sintassi</B><DD><P><CODE>public void addLineBreak ()</CODE> <DT><B>Descrizione</B><DD><P>Aggiunge una terminazione di riga al testo nel punto attuale. <DT><B>Vedi Anche</B><DD><P><CODE>add()</CODE>, <CODE>addParagraph()</CODE>. </DL> <P> <P> <P> <H3>addParagraph()</H3> <P> <DL> <DT><B>Obiettivo</B><DD><P>Comincia un nuovo paragrafo. <DT><B>Sintassi</B><DD><P><CODE>public void add ()</CODE> <DT><B>Descrizione</B><DD><P>Cominicia un nuovo paragrafo in questo punto del testo. <DT><B>Vedi Anche</B><DD><P><CODE>add()</CODE>, <CODE>addLineBreak()</CODE>. </DL> <P> <P> <P> <HR> <A HREF="Java-CGI-HOWTO-6.html">Avanti</A> <A HREF="Java-CGI-HOWTO-4.html">Indietro</A> <A HREF="Java-CGI-HOWTO.html#toc5">Indice</A> </BODY> </HTML>