Sophie

Sophie

distrib > Mandriva > 9.0 > i586 > by-pkgid > 0d5cd12c82d627a82c59047e1ba7b8a9 > files > 602

howto-html-fr-9.0-0.2mdk.noarch.rpm

<HTML>
<HEAD>
<TITLE>Utilisation des classes Java CGI</TITLE>
</HEAD>
<BODY>
<H1>5. <A NAME="s5"></A>Utilisation des classes Java CGI   </H1>
<P>
<A HREF="Java-CGI-HOWTO.html#toc5">Contenu de cette section</A></P>

<P>Trois classes principales sont pour l'instant support&eacute;es :
<A HREF="#cgi-class">CGI</A>
,
<A HREF="#email-class">Email</A>
 et
<A HREF="#html-class">HTML</A>
. Je pense y ajouter des classes
capables de g&eacute;rer des entr&eacute;es et des sorties format&eacute;es en MIME 
(respectivement MIMEin &amp; MIMEout).</P>
<P>Quelques classes de test et de support sont &eacute;galement disponibles :
<A HREF="#cgi-test-class">CGI_Test</A>
,
<A HREF="#email-test-class">Email_Test</A>
 et
<A HREF="#email-test-class">HTML_Test</A>
 doivent permettre
de tester votre installation. Elles peuvent aussi servir de point de
d&eacute;part &agrave; vos propres programmes Java bas&eacute;s sur cette biblioth&egrave;que de
classes. La classe 
<A HREF="#text-class">Text</A>
 est une superclasse
des classes <CODE>Email</CODE> et <CODE>HTML</CODE>.</P>
<P></P>
<A NAME="cgi-class"></A> <H2>5.1 <A NAME="ss5.1"></A> CGI    </H2>

<P></P>
<H3>Syntaxe     </H3>

<P><CODE>public class CGI</CODE></P>
<H3>Description     </H3>

<P>La classe CGI d&eacute;tient les "informations SGI" : les valeurs
d'environnement initialis&eacute;es par le serveur Web ainsi que le nom et
la valeur issus du formulaire quand l'action <B>submit</B> est
s&eacute;lectionn&eacute;e. Toutes les informations sont stock&eacute;es dans un objet de
classe <CODE>Properties</CODE>.</P>
<P>Cette classe se trouve dans le package "Orbits.net".</P>
<H3>Liste des membres     </H3>

<P>
<HR>
<PRE>
       CGI()         //  Constructeur.
       getNames()    //  Recupere la liste de noms.
       getValue()    //  Recupere la valeur a partir du nom.
      
</PRE>
<HR>
</P>
<H3>Voir aussi     </H3>

<P><CODE>CGI_Test</CODE>.</P>
<H3>CGI()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>Construit un objet contenant les donn&eacute;es CGI disponibles.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public CGI()</CODE></P>
<DT><B>Description</B><DD><P>Lorsqu'un objet CGI est construit, toutes les
informations CGI disponibles sont r&eacute;cup&eacute;r&eacute;es et stock&eacute;es dans le
nouvel objet.</P>
</DL>
</P>
<H3>getNames()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>Dresse la liste des noms d&eacute;finis par le formulaire.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public Enumeration getNames ()</CODE></P>
<DT><B>Description</B><DD><P>Fournit la liste compl&egrave;te des noms pour lesquels
des valeurs correspondantes ont &eacute;t&eacute; d&eacute;finies.</P>
<DT><B>Retourne</B><DD><P>Une <CODE>Enumeration</CODE> de tous les noms d&eacute;finis.</P>
</DL>
</P>
<H3>getValue()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>R&eacute;cup&egrave;re la <B>valeur</B> associ&eacute;e au <B>nom</B>
sp&eacute;cifi&eacute;.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public String getValue ( String nom )</CODE></P>
<DT><B>Description</B><DD><P>Cette m&eacute;thode fournit la correspondance entre les
<CODE>noms</CODE> et les <CODE>valeurs</CODE> envoy&eacute;es depuis un formulaire
HTML.</P>
<DT><B>Param&egrave;tre</B><DD><P>
<DL>
<DT><B>nom</B><DD><P>La cl&eacute; par laquelle les valeurs sont choisies.</P>
</DL>
</P>
<DT><B>Retourne</B><DD><P>Une <CODE>String</CODE> contenant la valeur.</P>
</DL>
</P>
<P></P>

<A NAME="cgi-test-class"></A> <H2>5.2 <A NAME="ss5.2"></A> CGI_Test    </H2>

<P>Cette classe fournit &agrave; la fois un exemple d'utilisation de la classe
CGI, et un programme de test, qu'on pourra utiliser pour confirmer que
le package <EM>Java CGI</EM> fonctionne correctement.</P>
<H3>Liste des membres     </H3>

<P>
<HR>
<PRE>
       main()      //   main() du programme
      
</PRE>
<HR>
</P>
<H3>Voir aussi     </H3>

<P><CODE>CGI</CODE>.</P>
<H3>main()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>Fournit une m&eacute;thode <CODE>main()</CODE>.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public static void main( String argv[] )</CODE></P>
<DT><B>Description</B><DD><P>Il s'agit du point d'entr&eacute;e d'un programme CGI qui
ne fait rien &agrave; part retourner la liste des couples nom/valeur.</P>
<DT><B>Param&egrave;tre
        </B><DD><P>
<DL>
<DT><B>argv<F></F></B><DD><P>Arguments pass&eacute;s au programme par le script
<CODE>java.cgi</CODE>.
Non utilis&eacute; pour l'instant.</P>
</DL>
</P>
</DL>
</P>
<P></P>

<A NAME="email-class"></A> <H2>5.3 <A NAME="ss5.3"></A> Email    </H2>

<P></P>
<H3>Syntaxe     </H3>

<P><CODE>public class Email extends Text</CODE></P>
<H3>Description     </H3>

<P>Les messages sont construits au moyen des m&eacute;thodes <CODE>add*()</CODE> de
la classe <CODE>Text</CODE> et les m&eacute;thodes sp&eacute;cifiques au courrier
&eacute;lectronique fournies par cette classe. Une fois compos&eacute;, le message
est envoy&eacute; vers sa destination finale.</P>
<P>Cette classe se trouve dans le package "Orbits.net".</P>
<H3>Liste des membres     </H3>

<P>
<HR>
<PRE>
       Email()      //  Constructeur
       send()       //  Envoie le message e-mail
       sendTo()     //  Ajoute une destination au message
       subject()    //  Initialise le champ Subject: du message
      
</PRE>
<HR>
</P>
<H3>Voir aussi     </H3>

<P><CODE>Email_Test, Text</CODE>.</P>
<H3>Email()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>Construit un objet qui contiendra un message
&eacute;lectronique.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public Email()</CODE></P>
<DT><B>Description</B><DD><P>Cr&eacute;e un message vide qui sera rempli par les
m&eacute;thodes Email.</P>
<DT><B>Voir aussi</B><DD><P><CODE>Text</CODE>.</P>
</DL>
</P>
<H3>send()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>Envoie le message e-mail.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public void send ()</CODE></P>
<DT><B>Description</B><DD><P>Formatage et envoi du message. Si aucune adresse
de destination n'a &eacute;t&eacute; pr&eacute;cis&eacute;e, ne fait rien.</P>
</DL>
</P>
<H3>sendTo()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>Ajoute une destination pour ce message.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public String sendTo ( String adresse )</CODE></P>
<DT><B>Description</B><DD><P>Ajoute <CODE>adresse</CODE> &agrave; la liste des
destinations pour cette m&eacute;thode. Il n'existe pas de limite <EM>a
priori</EM> pour le nombre de destinations d'un message e-mail. Je
suis s&ucirc;r qu'avec une liste assez grande, on peut d&eacute;passer la taille
acceptable pour le <EM>Mail Transport Agent</EM>, voire la m&eacute;moire
disponible sur votre syst&egrave;me.</P>
<DT><B>Param&egrave;tre</B><DD><P>
<DL>
<DT><B>adresse</B><DD><P>Une destination &agrave; laquelle envoyer ce message.</P>
</DL>
</P>
</DL>
</P>
<H3>subject()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>Initialise le sujet du message.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public void subject ( String sujet )</CODE></P>
<DT><B>Description</B><DD><P>Cette m&eacute;thode remplit le champ 
<CODE>Subject:</CODE> du message. Si elle est appel&eacute;e plusieurs fois,
le sujet utilis&eacute; sera le dernier demand&eacute;.</P>
<DT><B>Param&egrave;tre</B><DD><P>
<DL>
<DT><B>sujet</B><DD><P>Le texte du champ <CODE>Subject:</CODE> du message.</P>
</DL>
</P>
</DL>
</P>
<P></P>

<A NAME="email-test-class"></A> <H2>5.4 <A NAME="ss5.4"></A> Email_Test    </H2>

<P>Cette classe fournit &agrave; la fois un exemple d'utilisation de la classe
<CODE>Email</CODE> et un programme de test qu'on pourra utiliser pour
s'assurer que le package <EM>Java CGI</EM> fonctionne correctement.</P>
<H3>Liste des membres     </H3>

<P>
<HR>
<PRE>
       main()      //  main() du programme
      
</PRE>
<HR>
</P>
<H3>Voir aussi     </H3>

<P><CODE>Email</CODE>.</P>
<H3>main()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>Fournit une m&eacute;thode <CODE>main()</CODE>.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public static void main( String argv[] )</CODE></P>
<DT><B>Description</B><DD><P>Il s'agit du point d'entr&eacute;e d'un programme CGI qui
retourne une liste des couples nom/valeur disponibles. Cette liste
sera &eacute;galement envoy&eacute;e &agrave; l'adresse sp&eacute;cifi&eacute;e dans la variable
<CODE>Email</CODE>. </P>
<DT><B>Param&egrave;tre         </B><DD><P>
<DL>
<DT><B>argv<F></F></B><DD><P>Arguments pass&eacute;s au programme par le script
<CODE>java.cgi</CODE>. Non utilis&eacute; pour l'instant.</P>
</DL>
</P>
</DL>
</P>
<P></P>

<A NAME="html-class"></A> <H2>5.5 <A NAME="ss5.5"></A> HTML    </H2>

<P></P>
<H3>Syntaxe     </H3>

<P><CODE>public class HTML extends Text</CODE></P>
<H3>Description     </H3>

<P>Les messages sont cr&eacute;&eacute;s &agrave; l'aide des m&eacute;thodes <CODE>add*()</CODE> de la
classe <CODE>Text</CODE> et des m&eacute;thodes sp&eacute;cifique au HTML ajout&eacute;es par
cette classe. Une fois termin&eacute;, le message est envoy&eacute;.</P>
<P>Aucun test n'est effectu&eacute; pour l'instant pour s'asurer que les
m&eacute;thodes de construction de liste sont utilis&eacute;es dans le bon
ordre. C'est donc au programmeur de faire attention &agrave; ne pas violer
la syntaxe HTML.</P>
<P>Cette  classe se trouve dans le package "Orbits.net".</P>
<H3>Liste des membres     </H3>

<P>
<HR>
<PRE>
       HTML()                  //  Constructeur.
       author()                //  Initialise le nom de l'auteur du document.
       definitionList()        //  Cree une liste de definitions.
       definitionListTerm()    //  Ajoute un terme a la liste de definitions.
       endList()               //  Termine une liste.
       listItem()              //  Ajoute une entree a une liste.
       send()                  //  Envoie le message HTML.
       title()                 //  Initialise le titre du document.
      
</PRE>
<HR>
</P>
<H3>Voir aussi     </H3>

<P><CODE>HTML_Test, Text</CODE>.</P>
<H3>HTML()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>Construit un objet qui contiendra un message HTML.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public HTML()</CODE></P>
<DT><B>Description</B><DD><P>Cr&eacute;e un message vide qui sera rempli par les
m&eacute;thodes HTML.</P>
<DT><B>Voir aussi</B><DD><P><CODE>Text</CODE>.</P>
</DL>
</P>
<H3>author()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>Initialise le nom de l'auteur du document.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public void author ( String auteur )</CODE></P>
<DT><B>Description</B><DD><P>Donne au document un nom d'auteur ayant pour
valeur <CODE>author</CODE>.</P>
<DT><B>Param&egrave;tre</B><DD><P>
<DL>
<DT><B>auteur</B><DD><P>Texte &agrave; utiliser en tant que nom d'auteur du message.</P>
</DL>
</P>
<DT><B>Voir aussi</B><DD><P><CODE>title()</CODE>.</P>
</DL>
</P>
<H3>definitionList()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>Cr&eacute;e une liste de d&eacute;finitions.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public void definitionList ()</CODE></P>
<DT><B>Description</B><DD><P>Initialise une liste de d&eacute;finition. Une <EM>liste
de d&eacute;finitions</EM> est une liste sp&eacute;cialis&eacute;e telle que chaque
entr&eacute;e de la liste soit un <EM>terme</EM> suivi du <EM>texte</EM>
correspondant &agrave; la d&eacute;finition de ce terme. La cr&eacute;ation d'une liste
de d&eacute;finitions doit &ecirc;tre suivie par celle d'au moins un couple
terme/texte, et d'un appel &agrave; la m&eacute;thode <CODE>endList()</CODE>.
<EM>Notons que, pour le moment, les listes ne peuvent pas &ecirc;tre
imbriqu&eacute;es.</EM></P>
<DT><B>Voir aussi</B><DD><P><CODE>definitionListTerm()</CODE>, <CODE>endList()</CODE>,
<CODE>listItem()</CODE>.</P>
</DL>
</P>
<H3>definitionListTerm()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>Ajoute un terme &agrave; la liste de d&eacute;finitions.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public void definitionListTerm ()</CODE></P>
<DT><B>Description</B><DD><P>Ajoute un terme &agrave; la liste de d&eacute;finitions. Le texte
d&eacute;finissant le partie terme de l'entr&eacute;e courante de la liste devra
&ecirc;tre ins&eacute;r&eacute; dans le message apr&egrave;s l'appel de cette m&eacute;thode, et
avant qu'une m&eacute;thode <CODE>listItem</CODE> correspondante soit appel&eacute;e.</P>
<DT><B>Voir aussi</B><DD><P><CODE>definitionList()</CODE>, <CODE>listItem()</CODE>.</P>
</DL>
</P>
<H3>endList()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>Termine une liste.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public void endList ()</CODE></P>
<DT><B>Description</B><DD><P>Cette m&eacute;thode permet de clore une liste.
<EM>Notons que, pour le moment, les listes ne peuvent pas &ecirc;tre
imbriqu&eacute;es.</EM></P>
<DT><B>Voir aussi</B><DD><P><CODE>definitionList()</CODE>.</P>
</DL>
</P>
<H3>listItem()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>Ajoute une entr&eacute;e &agrave; une liste.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public void listItem ()</CODE></P>
<DT><B></B><DD><P><CODE>public void listItem ( String article )</CODE></P>
<DT><B></B><DD><P><CODE>public boolean listItem ( String terme, String article )</CODE></P>
<DT><B>Description</B><DD><P>Ajoute une entr&eacute;e &agrave; une liste. Si la premi&egrave;re
forme est utilis&eacute;e, le texte de l'article de liste courant devra
&ecirc;tre ajout&eacute; au message apr&egrave;s l'appel de cette m&eacute;thode, et avant tout
autre appel &agrave; des m&eacute;thodes de liste. Dans la deuxi&egrave;me et troisi&egrave;me
forme, le texte
<CODE>article</CODE> est pass&eacute; comme param&egrave;tre &agrave; la m&eacute;thode, au lieu (ou
en plus) d'&ecirc;tre ajout&eacute; au message. La troisi&egrave;me forme est sp&eacute;cifique
aux listes de d&eacute;finitions et fournit &agrave; la fois le terme et la
d&eacute;finition de l'entr&eacute;e de liste.</P>
<DT><B>Param&egrave;tres</B><DD><P>
<DL>
<DT><B>article</B><DD><P>Le texte de cette entr&eacute;e de liste de d&eacute;finitions.</P>
<DT><B>terme</B><DD><P>Le texte de la partie terme de cette entr&eacute;e de liste
de d&eacute;finitions.</P>
</DL>
</P>
<DT><B>Voir aussi</B><DD><P><CODE>definitionList()</CODE>,
<CODE>definitionListTerm()</CODE>,
<CODE>endList()</CODE>.</P>
</DL>
</P>
<H3>send()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>Envoie le message HTML.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public void send ()</CODE></P>
<DT><B>Description</B><DD><P>Envoie le message HTML.</P>
</DL>
</P>
<H3>title()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>Donne une valeur au titre du document.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public void title ( String titre )</CODE></P>
<DT><B>Description</B><DD><P>Initialise le texte du titre du document.</P>
<DT><B>Param&egrave;tre</B><DD><P>
<DL>
<DT><B>titre</B><DD><P>Le texte du titre de ce message.</P>
</DL>
</P>
<DT><B>Voir aussi</B><DD><P><CODE>author()</CODE>.</P>
</DL>
</P>

<A NAME="html-test-class"></A> <H2>5.6 <A NAME="ss5.6"></A> HTML_Test    </H2>

<P>Cette classe offre &agrave; la fois un exemple d'utilisation de la classe
<CODE>HTML</CODE> et un programme de test qui peu servir &agrave; s'assurer que
le package <EM>Java CGI</EM> fonctionne correctement.</P>
<H3>Liste des membres     </H3>

<P>
<HR>
<PRE>
       main()      //  main() du programme.
      
</PRE>
<HR>
</P>
<H3>Voir aussi     </H3>

<P><CODE>HTML</CODE>.</P>
<H3>main()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>Fournit une m&eacute;thode <CODE>main()</CODE>.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public static void main( String argv[] )</CODE></P>
<DT><B>Description</B><DD><P>Il s'agit du point d'entr&eacute;e pour un programme CGI
qui retourne une liste des couples nom/valeur d'un document HTML,
chaque couple &eacute;tant un &eacute;l&eacute;ment d'une liste de d&eacute;finitions.</P>
<DT><B>Param&egrave;tre         </B><DD><P>
<DL>
<DT><B>argv<F></F></B><DD><P>Arguments pass&eacute;s au programme par le script
<CODE>java.cgi</CODE> Non utilis&eacute; pour l'instant.</P>
</DL>
</P>
</DL>
</P>
<P></P>

<A NAME="text-class"></A> <H2>5.7 <A NAME="ss5.7"></A> Text    </H2>

<P></P>
<H3>Syntaxe     </H3>

<P><CODE>public abstract class Text</CODE></P>
<H3>Description     </H3>

<P>Cette classe est la superclasse des classes <CODE>Email</CODE> et
<CODE>HTML</CODE>. Les messages sont construits &agrave; l'aide des m&eacute;thodes de
cette classe, puis compl&eacute;t&eacute;s et format&eacute;s gr&acirc;ce aux m&eacute;thodes des
sous-classes.</P>
<P>Cette classe se trouve dans le package "Orbits.text".</P>
<H3>Liste des membres     </H3>

<P>
<HR>
<PRE>
       Text()            //  Constructeur.
       add()             //  Ajoute du texte a cet objet.
       addLineBreak()    //  Ajoute une rupture de ligne.
       addParagraph()    //  Ajoute une rupture de paragraphe.
      
</PRE>
<HR>
</P>
<H3>Voir aussi     </H3>

<P><CODE>Email</CODE>, <CODE>HTML</CODE>.</P>
<H3>add()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>Ajoute du texte &agrave; cet article</P>
<DT><B>Syntaxe</B><DD><P><CODE>public void add ( char ajout )</CODE></P>
<DT><B></B><DD><P><CODE>public void add ( String ajout )</CODE></P>
<DT><B></B><DD><P><CODE>public void add ( StringBuffer ajout )</CODE></P>
<DT><B>Description</B><DD><P>Ajoute le texte <CODE>ajout</CODE> &agrave; la suite du
contenu de cet article.</P>
<DT><B>Param&egrave;tre</B><DD><P>
<DL>
<DT><B>ajout</B><DD><P>Texte &agrave; ajouter.</P>
</DL>
</P>
<DT><B>Voir aussi</B><DD><P><CODE>addLineBreak()</CODE>, <CODE>addParagraph()</CODE>.</P>
</DL>
</P>
<H3>addLineBreak()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>Force une rupture de ligne &agrave; cet endroit dans le texte.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public void addLineBreak ()</CODE></P>
<DT><B>Description</B><DD><P>Ins&egrave;re une rupture de ligne dans le texte, &agrave;
l'endroit du point courant.</P>
<DT><B>Voir aussi</B><DD><P><CODE>add()</CODE>, <CODE>addParagraph()</CODE>.</P>
</DL>
</P>
<H3>addParagraph()     </H3>

<P>
<DL>
<DT><B>Finalit&eacute;</B><DD><P>D&eacute;bute un nouveau paragraphe.</P>
<DT><B>Syntaxe</B><DD><P><CODE>public void add ()</CODE></P>
<DT><B>Description</B><DD><P>D&eacute;bute un  nouveau paragraphe &agrave; ce point du flot
textuel.</P>
<DT><B>Voir aussi</B><DD><P><CODE>add()</CODE>, <CODE>addLineBreak()</CODE>.</P>
</DL>
</P>
<P></P>

<HR>
<P>
Chapitre <A HREF="Java-CGI-HOWTO-6.html">suivant</A>,
Chapitre <A HREF="Java-CGI-HOWTO-4.html">Pr&eacute;c&eacute;dent</A>
<P>
Table des mati&egrave;res de <A HREF="Java-CGI-HOWTO.html#toc5">ce chapitre</A>,
 <A HREF="Java-CGI-HOWTO.html#toc">Table des mati&egrave;res</A> g&eacute;n&eacute;rale</P>
<P>
<A HREF="Java-CGI-HOWTO.html">D&eacute;but</A> du document,
 <A HREF="#0"> D&eacute;but de ce chapitre</A></P>
</BODY>
</HTML>