File: Java-CGI-HOWTO

package info (click to toggle)
doc-linux-it 2000.01-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 8,136 kB
  • ctags: 19
  • sloc: perl: 249; makefile: 50; sh: 42
file content (1188 lines) | stat: -rw-r--r-- 27,643 bytes parent folder | download
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
  Java CGI HOWTO
  di David H. Silber dhs@orbits.com
  v0.4, 18 Novembre 1996

  Questo HOWTO spiega come configurare il vostro server per accogliere
  programmi CGI scritti in Java e come utilizzare Java per scrivere pro
  grammi. Nonostante gli HOWTO abbiano come obiettivo l'utilizzo di
  Linux come sistema operativo, questo documento si rivolge a tutti gli
  utilizzatori indipendentemente dalla versione di unix usata.  La
  traduzione italiana  stata curata da Luca Rossetti (lukaros@tin.it).

  1.  Introduzione

  A causa del metodo con cui Java  stato scritto, il programmatore non
  ha un accesso molto semplice alle variabili d'ambiente del sistema.
  Inoltre, per le modalit con cui il Java Development Kit (JDK)  stato
  costruito, per lanciare un programma  necessario utilizzare segnali
  multipli, cosa che non si addice molto alla metodologia di operazioni
  dello standard HTML forms/CGI.  Esistono vari metodi per eliminare
  queste limitazioni, ed io ho implementato uno di questi.  Il seguito
  di questo documento ne spiega tutti i dettagli.




  1.1.  Conoscenze necessarie

  Si assume che abbiate una conoscenza generale del linguaggio HTML e
  dei concetti legati al CGI e almeno una minima conoscenza del vostro
  server HTTP.  Dovreste anche conoscere la programmazione in Java o
  molto di quanto leggerete non avr granch senso.




  1.2.  Dove trovare questo Documento

  La versione pi recente di questo documento si pu trovare presso
  http://www.orbits.com/software/Java_CGI.html.




  1.3.  Il Pacchetto Software

  La versione pi recente del pacchetto software descritto pu essere
  scaricata mediante FTP anonimo presso
  ftp://ftp.orbits.com/pub/software/java_cgi-0.4.tgz.La distribuzione
  del pacchetto include anche un sorgente SGML di questo documento.

  Il pacchetto  distribuito nei termini della GNU Library General
  Public License.  Questo documento pu essere distribuito nei termini
  della nota di copyright degli HOWTO di Linux.

  Se utilizzate questo software, rendete disponibile un collegamento
  alla pagina http://www.orbits.com/software/Java_CGI.html, cosicch
  altre persone possano trovare le classi CGI Java.




  1.4.  Inserzione senza Pudore

  Questo documento vi proposto viene grazie a Stellar Orbits Technology
  Services.  (Visitate il nostro sito http://www.orbits.com/ per vedere
  di cosa ci occupiamo.)
  2.  Come Configurare il Vostro Server per lanciare Programmi Java CGI
  (con Spiegazioni)

  Questa sezione vi guider nella installazione dei miei pacchetti Java
  CGI con spiegazioni approfondite per farvi capire quali siano gli
  effetti di tutte le vostre azioni. Se volete solo installare i
  programmi e non vi interessano tutti i motivi ed i perch, saltate
  alla sezione ``Come Configurare il Vostro Server per lanciare
  Programmi Java CGI (forma abbreviata)''.




  2.1.  Requisiti di Sistema

  Questo software dovrebbe funzionare su un qualsiasi web server unix-
  like che ha il Java Development Kit installato. Io lo utilizzo su un
  sistema con Debian Linux che usa apache come demone HTTP. Se non
  dovesse funzionare sul vostro server, contattatemi presso
  dhs@orbits.com.

  Sfortunatamente, l'interprete run-time di Java sembra essere veramente
  ingordo di memoria -- potreste avere la necessit di installare
  qualche altro megabyte di RAM nel vostro server se vorrete usare
  estensivamente le capacit dei programmi Java CGI.




  2.2.  Il Software Add-On di Java CGI

  Il software di cui ho scritto il codice  chiamato Java CGI.  Potete
  scaricarlo dal sito ftp:
  ftp://www.orbits.com/pub/software/java_cgi-0.4.tgz.  (Il numero della
  versione potrebbe essere cambiato).




  2.3.  Come decomprimere il Pacchetto Sorgente

  Scegliete opportunamente una directory per decomprimere il pacchetto.
  (Se non avete ancora fissato un posto standard in cui installare i
  pacchetti software, suggerisco di utilizzare /usr/local/src.)  Per
  decomprimere il file contenente la distribuzione si utilizza il
  seguente comando:

  gzip -dc java_cgi-0.4.tgz | tar -xvf -


  Questo comando creer una directory chiamata java_cgi-0.4. All'interno
  di questa directory troverete tutti i file a cui far riferimento nel
  resto del documento.  (Se il numero della versione  cambiato, consul
  tate le istruzioni contenute nella distribuzione per continuare
  l'installazione).




  2.4.  Le Directory di Installazione

  A questo punto dovete decidere dove volete che i vostri programmi Java
  CGI risiedano.  Generalmente si mettono in una directory in parallelo
  con la directory cgi-bin.  Il mio server apache  configurato per
  usare /var/web/cgi-bin come directory cgi-bin, per cui uso
  /var/web/javacgi come la directory in cui inserire programmi Java.
  Probabilmente  meglio non mettere i vostri programmi Java CGI nelle
  directory esistenti nel CLASSPATH.  Modificate il Makefile per fare in
  modo che esso che si adatti alla configurazion del vostro sistema.
  Come root lanciate make install.  Questo compiler i programmi Java,
  modificate lo script java.cgi per fare in modo che si adatti al vostro
  sistema ed installi i programmi nei posti giusti.  Se invece volete
  avere la versione HTML di questo documento e una pagina HTML di test
  in aggiunta, lanciate make all.




  2.5.  Come Testare l'installazione.

  Assieme alla distribuzione trovere dei documenti HTML chiamati
  javacgitest.html, javaemailtest.html e javahtmltest.html.  Se avete
  installato tutto con make all come menzionato nella sezione
  precedente, i documenti saranno nella directory che avete specificato
  come WEBDIR nel Makefile.  Se non lo avete fatto, potrete lanciare
  make test per costruirli da javacgitest.html-dist, javaemailtest.html-
  dist e javahtmltest.html-dist.

  Quando siete sicuri che la vostra installazione sia andata a buon
  fine, potrete decidere se rimuovere CGI_Test.class, Email_Test.class e
  HTML_Test.class dalla vostra directory JAVACGI e javacgitest.html,
  javaemailtest.html e javahtmltest.html dalla vostra directory WEBDIR
  visto che essi mostrano alcune informazioni relative all'utente che
  sono normalmente disponibili solo al server.




  3.  Come Configurare il Vostro Server per lanciare Programmi Java CGI
  (forma abbreviata)


    Scaricate il pacchetto Java CGI dal sito ftp
     ftp://www.orbits.com/pub/software/java_cgi-0.4.tgz.  (Il numero
     della versione potrebbe essere cambiato).

    Decomprimete il file contenente la distribuzione utilizzando il
     comando:

     gzip -dc java_cgi-0.4.tgz | tar -xvf -


  (Se il numero della versione  cambiato, consultate le istruzioni con
  tenute nella distribuzione per continuare l'installazione).

    Controllate il contenuto del Makefile che troverete all'interno
     della directory java_cgi-0.4 appena creata e modificatelo
     opportunamente per il vostro sistema.

    Come root, lanciate make install.  Questo comando compiler i
     programmi Java, applicher le informazioni che avete specificato
     per il vostro sistema ed installer tutti i file.  Se invece
     desiderate consultare la documentazione in formato HTML e visionare
     un documento HTML di test, lanciate make all.

    Giunti a questo punto dovreste essere pronti per iniziare.






  4.  Come Eseguire un Programma Java CGI





  4.1.  Ostacoli quando si lanciano Programmi Java sotto il Modello CGI

  Esistono due problemi principali nel lanciare un programma Java da un
  server Web:




  4.1.1.  Non si possono lanciare programmi Java come normali
  eseguibili.

  Bisogna lanciare l'interprete run-time di Java e fornire la classe
  iniziale (programma da eseguire) in linea di comando.  Con un form
  HTML, non esiste nessuna precauzione nell'inviare una linea di comando
  al server web.




  4.1.2.  Con Java non si ha un accesso generale alle variabili d'ambi
  ente.

  Ogni variabile d'ambiente necessaria al programma Java deve essere
  passata esplicitamente.  Non esiste un metodo simile alla funzione C
  getenv().




  4.2.  Superare i Problemi lanciando Programmi Java CGI

  Per eliminare questi ostacoli, ho scritto un programma CGI di shell
  che fornisce le informazioni necessarie all'interprete Java.




  4.2.1.  Lo script java.cgi.

  Questo script di shell si occupa dell'interazione tra il demone HTTP
  daemon e il programma Java CGI che dovete usare.  Estrae il nome del
  programma che volete lanciare dai dati forniti al server e raccoglie
  tutti i dati d'ambiente in un file temporaneo.  Quindi lancia
  l'interprete run-time di Java con il nome del file di informazioni
  d'ambiente e il nome del programma aggiunto alla linea di comando.

  La spiegazione di come viene configurato ed installato lo script
  java.cgi si trova nella sezione ``Le Directory di Installazione''.




  4.2.2.  Come Utilizzare il java.cgi da un form HTML.

  I forms che usano i programmi Java CGI specificano delle azioni come
  di seguito formalizzato:

  <form action="/cgi-bin/java.cgi/CGI_Test" method="POST">


  Dove /cgi-bin/  la directory locale che avete specificato per i file
  binari CGI, java.cgi  il front-end di Java che permette di lanciare
  programmi Java sul Web e CGI_Test  un esempio del nome del programma
  Java da lanciare.




  5.  Utilizzo delle Classi Java.

  Attualmente sono supportate tre classi principali definite nelle
  sezioni ``CGI'', ``Email'' e ``HTML''.  Sto considerando di aggiungere
  le classi per trattare l'input e l'output MIME-formatted
  rispettivamente con MIMEin & MIMEout.

  Esistono anche classi di supporto e di test definite nelle sezioni
  ``CGI_Test'', ``Email_Test'' e ``HTML_Test''. 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 ``Text''  la
  superclasse per entrambe le classi Email e HTML.




  5.1.  CGI





  5.1.1.  Sintassi della Classe

  public class CGI




  5.1.2.  Descrizione della Classe

  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 submit.  Tutte le informazioni sono
  memorizzate in un oggetto della classe Properties.

  Questa classe  nel pacchetto ``Orbits.net''.




  5.1.3.  Sommario dei membri della Classe


  ______________________________________________________________________
          CGI()         //  Costruttore.
          getNames()    //  Prende la lista di nomi.
          getValue()    //  Prende il valore del form specificando il nome.
  ______________________________________________________________________







  5.1.4.  Vedi Anche

  CGI_Test.




  5.1.5.  CGI()


     Obiettivo
        Costruisce un oggetto che contiene i dati CGI disponibili.

     Sintassi
        public CGI()

     Descrizione
        Quando viene costruito un oggetto CGI, tutte le informazioni
        disponibili vengono assorbite ed immagazzinate localmente al
        nuovo oggetto.




  5.1.6.  getNames()


     Obiettivo
        Lista i nomi che sono definiti per avere valori corrispondenti.

     Sintassi
        public Enumeration getKeys ()

     Descrizione
        Fornisce la lista intera di nome per i quali sono definiti
        valori corrispondenti.

     Restituisce
        Una Enumerazione di tutti i nomi definiti.




  5.1.7.  getValue()


     Obiettivo
        Ricerca i valori associati al nome specificato.

     Sintassi
        public String getValue ( String name )

     Descrizione
        Questo metodo fornisce una corrispondenza tra nomi e valori
        inviati da un form HTML.

     Parametri

        name
           La chiave con la quale i valori vengono selezionati.

     Restituisce
        Una Stringa che contiene il valore.



  5.2.  CGI_Test

  Questa classe fornisce un esempio di come usare la classe CGI ed anche
  un programma di test che pu essere usato per avere la conferma che il
  pacchetto Java CGI funzioni correttamente.




  5.2.1.  Sommario dei membri della Classe


  ______________________________________________________________________
          main()      //  Programma main().
  ______________________________________________________________________






  5.2.2.  Vedi Anche

  CGI.




  5.2.3.  main()


     Obiettivo
        Fornire un metodo main().

     Sintassi
        public static void main( String argv[] )

     Descrizione
        Questo  il punto di ingresso del programma CGI che restituisce
        una lista delle coppie nomi/valori disponibili e il loro valore
        attuale.

     Parametri

        argv[]
           Argomenti passati al programma dallo script java.cgi.
           Attualmente inutilizzato.




  5.3.  Email





  5.3.1.  Sintassi della Classe

  public class Email extends Text






  5.3.2.  Descrizione della Classe

  I Messaggi sono costruiti con la classe Text e i metodi add*() e i
  metodi specifici e-mail-specific aggiunti a da questa classe. Quando
  completo, il messaggio viene inviato ai suoi destinatari.

  Questa classe  contenuta nel pacchetto ``Orbits.net''.




  5.3.3.  Sommario dei membri della Classe


  ______________________________________________________________________
          Email()      //  Costruttore.
          send()       //  Invia un messaggio e-mail.
          sendTo()     //  Aggiunge un destinatario al messaggio.
          subject()    //  Imposta il Subject del messaggio.
  ______________________________________________________________________






  5.3.4.  Vedi Anche

  Email_Test, Text.




  5.3.5.  Email()


     Obiettivo
        Costruisce un oggetto che conterr un messaggio email.

     Sintassi
        public Email()

     Descrizione
        Costruisce un messaggio vuoto da completare da parte dei metodi
        Email.

     Vedi Anche
        Text.




  5.3.6.  send()


     Obiettivo
        Invia un messaggio e-mail.

     Sintassi
        public void send ()

     Descrizione
        Formatta ed invia il messaggio.  Se non viene specificato un
        indirizzo di destinazione, non viene intrapresa alcuna azione.


  5.3.7.  sendTo()


     Obiettivo
        Aggiunge una destinazione per questo messaggio.

     Sintassi
        public String sendTo ( String address )

     Descrizione
        Aggiunge address 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 Agente di Trasporto della Posta  in grado di
        accettare.

     Parametri

        address
           Una destinazione a cui inviare il messaggio.




  5.3.8.  subject()


     Obiettivo
        Imposta l'oggetto/subject per questo messaggio.

     Sintassi
        public void subject ( String subject )

     Descrizione
        Questo metodo imposta il testo per la riga Subject: di un
        messaggio email.  Se vengono chiamati pi di una volta, viene
        utilizzato il subject pi recente.

     Parametri

        subject
           Il testo della riga Subject: del messaggio.




  5.4.  Email_Test

  Questa classe fornisce sia un esempio di come utilizzare la classe
  Email sia un programma di test per verificare che il pacchetto Java
  CGI funzioni correttamente.




  5.4.1.  Sommario dei membri della Classe


  ______________________________________________________________________
          main()      //  Programma main().
  ______________________________________________________________________



  5.4.2.  Vedi Anche

  Email.




  5.4.3.  main()


     Obiettivo
        Fornisce un metodo main().

     Sintassi
        public static void main( String argv[] )

     Descrizione
        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 Email.

     Parametri

        argv[]
           Argomenti passati al programma dallo script java.cgi.
           Attualmente inutilizzato.




  5.5.  HTML





  5.5.1.  Sintassi della Classe

  public class HTML extends Text




  5.5.2.  Descrizione della Classe

  I Messaggi vengono costruiti con i metodi Text class add*() e dai
  metodi specifici-HTML aggiunti da questa classe.  Quando completo, il
  messaggio viene inviato alle sue destinazioni.

  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.

  Questa classe  nel pacchetto ``Orbits.net''.




  5.5.3.  Sommario dei membri della Classe





  ______________________________________________________________________
      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.
  ______________________________________________________________________






  5.5.4.  Vedi Anche

  HTML_Test, Text.




  5.5.5.  HTML()


     Obiettivo
        Costruisce un oggetto che contiene un messaggio HTML.

     Sintassi
        public HTML()

     Descrizione
        Costruisce un messaggio vuoto da completare con i metodi HTML.

     Vedi Anche
        Text.




  5.5.6.  author()


     Obiettivo
        Imposta il nome dell'autore del documento.

     Sintassi
        public void author ( String author )

     Descrizione
        Imposta il nome dell'autore del documento in author.

     Parametri

        author
           Il testo da usare come autore di questo messaggio.

     Vedi Anche
        title().






  5.5.7.  definitionList()


     Obiettivo
        Avvia una definition list.

     Sintassi
        public void definitionList ()

     Descrizione
        Avvia una definition list.  Una definition list  una
        particolare lista per la quale ogni elemento di ingresso della
        lista  term seguito dalla definizione text per quel termine.
        L'avvio di una definition list dovrebbe essere seguito dalla
        creazione di almeno un termine/testo e una chiamata al metodo
        endList().  Da notare che, attualmente, le liste non possono
        essere nidificate

     Vedi Anche
        definitionListTerm(), endList(), listItem().




  5.5.8.  definitionListTerm()


     Obiettivo
        Aggiunge un termine alla definition list.

     Sintassi
        public void definitionListTerm ()

     Descrizione
        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 listItem venga chiamato.

     Vedi Anche
        definitionList(), listItem().




  5.5.9.  endList()


     Obiettivo
        Termina una lista.

     Sintassi
        public void endList ()

     Descrizione
        Termina una lista.  Questo metodo elimina una lista.  Da notare
        che al momento attuale, le liste non possono essere nidificate.

     Vedi Anche
        definitionList().






  5.5.10.  listItem()


     Obiettivo
        Aggiunge una voce nella lista.

     Sintassi
        public void listItem ()

        public void listItem ( String item )

        public boolean listItem ( String term, String item )

     Descrizione
        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 item  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.

     Parametri

        item
           Il testo di questo ingresso di lista.

        term
           Il testo di questa parte del termine di ingresso della
           definition list.

     Vedi Anche
        definitionList(), definitionListTerm(), endList().




  5.5.11.  send()


     Obiettivo
        Invia un messaggio HTML.

     Sintassi
        public void send ()

     Descrizione
        Invia un messaggio HTML.




  5.5.12.  title()


     Obiettivo
        Imposta il testo per il titolo del documento.

     Sintassi
        public void title ( String title )

     Descrizione
        Imposta il testo per il titolo del documento.


     Parametri

        title
           Il testo del titolo del documento.

     Vedi Anche
        author().




  5.6.  HTML_Test

  Questa classe fornisce sia un esempio di come usare la classe HTML sia
  un programma di test che pu essere usato per avere la conferma che il
  pacchetto Java CGI funzioni correttamente.




  5.6.1.  Sommario dei membri della Classe


  ______________________________________________________________________
          main()      //  Programma main().
  ______________________________________________________________________






  5.6.2.  Vedi Anche

  HTML.




  5.6.3.  main()


     Obiettivo
        Fornire un metodo main().

     Sintassi
        public static void main( String argv[] )

     Descrizione
        Questo  il punto di ingresso del programma CGI che restituisce
        una lista delle coppie nomi/valori disponibili e il loro valore
        attuale.

     Parametri

        argv[]
           Argomenti passati al programma dallo java.cgi.  Attualmente
           inutilizzato.




  5.7.  Text



  5.7.1.  Sintassi delle Classi

  public abstract class Text




  5.7.2.  Descrizione delle Classi

  Questa classe  la superclasse delle classi Email e HTML.  I Messaggi
  sono costruiti con i metodi di questa classe poi completati e
  formattati con i metodi delle sottoclassi.

  Questa classe  contenuta nel pacchetto ``Orbits.text''.




  5.7.3.  Member Summary


  ______________________________________________________________________
          Text()            //  Costruttore.
          add()             //  Aggiunge testo a questo oggetto.
          addLineBreak()    //  Aggiunge un terminatore di riga.
          addParagraph()    //  Aggiunge un terminatore di paragrafo.
  ______________________________________________________________________






  5.7.4.  Vedi Anche

  Email, HTML.




  5.7.5.  add()


     Obiettivo
        Aggiunge del testo a questo elemento.

     Sintassi
        public void add ( char addition )

        public void add ( String addition )

        public void add ( StringBuffer addition )

     Descrizione
        Aggiunge addition ai contenuti di questo elemento di testo.

     Parameter

        addition
           Testo da aggiungere all'elemento di testo.

     Vedi Anche
        addLineBreak(), addParagraph().



  5.7.6.  addLineBreak()


     Obiettivo
        Forza una terminazione di riga nel punto esatto del testo.

     Sintassi
        public void addLineBreak ()

     Descrizione
        Aggiunge una terminazione di riga al testo nel punto attuale.

     Vedi Anche
        add(), addParagraph().




  5.7.7.  addParagraph()


     Obiettivo
        Comincia un nuovo paragrafo.

     Sintassi
        public void add ()

     Descrizione
        Cominicia un nuovo paragrafo in questo punto del testo.

     Vedi Anche
        add(), addLineBreak().




  6.  Piani Futuri


    Aggiungere alla classe Email:

     Email( int capacity )
        Usato quando conosciamo quanto spazio necessita al messaggio per
        essere allocato.

     sendTo( String [] address )
        Aggiunge una lista di destinazioni primarie al messaggio e-mail.

     sendCc( String address )
        Aggiunge una destinazione Carbon-Copy al messaggio e-mail.

     sendCc( String [] address )
        Aggiunge una lista di destinazioni Carbon-Copy al messaggio e-
        mail.

     sendBcc( String address )
        Aggiunge una destinazione Blind Carbon-Copy al messaggio e-mail.

     sendBcc( String [] address )
        Aggiunge una lista di destinazioni Blind Carbon-Copy al
        messaggio e-mail.

    Aggiungere alla classe HTML:

     HTML( int capacity )
        Usato quando conosciamo quanto spazio necessita al messaggio per
        essere allocato.

     public void unorderedList()
        Avvia una lista non-ordinata.

     public void orderedList()
        Avvia una lista ordinata.

     public void directoryList()
        Avvia una lista di directory.

     public void menuList()
        Avvia una lista di menu.

     void anchor( String anchorName )
        Specifica un anchor.

     void link( String url, String text )
        Specifica un link.

     void applet( String url, String altText )
        Specifica un link ad un applet.

    Permettere la nidificazione delle liste HTML.

    Aggiungere un codice a controllo di errore per rinforzare
     l'ordinamento corretto dei codici di formattazione delle liste
     HTML.

    Il posizionamento del file dei dati d'ambiente deve essere
     configurabile tramite la modifica del Makefile.

    Eliminare le coppie spurie di nomi/valori vuoti che appaiono nella
     lista quando si tratta il metodo di trasferimento di dati GET.

    Considerare di fare in modo che CGI implementi l'interfaccia
     java.util.Enumeration per fornire successivamente i nomi delle
     variabili.

    Aggiungere una classe Test, con la quale utilizzare ogni metodo di
     questo pacchetto.

    Documentare come CGI_Test, Email_Test e HTML_Test facciano
     affidamento l'uno sull'altro per fornire tests incrementali per
     obiettivi di debugging.

    Documentare come Test utilizzi ogni caratteristica disponibile in
     questo pacchetto.




  7.  Varianti





  7.1.  Varianti da 0.3 a 0.4


    Buttata fuori la classe HTML per fornire una minima funzionalit

    Scritta la classe HTML_Test e javahtmltest.html-dist.


    Aggiunti i metodi HTML per trattare con la definition list.




  7.2.  Varianti da 0.2 a 0.3


    Aggiunte le classi Text e Email.  Viene aggiunto anche l'HTML, ma 
     solo un inizio.

    Raccolte le varie classi in pacchetti.  Le classi principali sono
     in Orbits.net.*, la classe di supporto Text  in Orbits.text.Text.

    Cambiato CGItest in CGI_Test.

    Aggiunta la classe Email_Test.




  7.3.  Varianti da 0.1 a 0.2


    Le variabili d'ambiente vengono messe in un file temporaneo invece
     di essere stipate in linea di comando nell'interprete Java.  Le
     classi CGI e java.cgi sono state modificate.

    Il documento javacgitest.html diventa parte della distribuzione.

    I file di testo che sono modificati da make durante l'installazione
     vengono forniti con nomi che terminano con -dist.