Java CGI HOWTO by David H. Silber javacgi-document@orbits.com v0.5, 1 December 1998 ¡´Pà fujiwara@linux.or.jp ±Ì HOWTO ¶ÍCJavaÅ©ê½ CGI vOð WWW T[oãÅÀs Å«éæ¤ÉÝè·éû@ÆCCGI vOð½ßÌ Java Ìg¢ûð ྵܷDêÊÉ HOWTO ¶Í Linux ðÎÛƵĩêĢܷªC± ̶ÉÀÁÄÍ UNIX ÌíÞÉÍ˶µÄ¢Ü¹ñD ______________________________________________________________________ Ú 1. ͶßÉ 1.1 {¶ÅOñÆ·ém¯ 1.2 {¶É墀 1.3 vOEpbP[WÉ墀 1.4 [OXg 2. Java Ì CGI vOðÀs·é½ßÌT[oÌÝè(à¾Â«) 2.1 v³êéVXe«\ 2.2 Java CGI AhIE\tgEFA 2.3 \[XÌWJ 2.4 [JpXÉ¢ÄÌûjÌè 2.5 CXg[ÌeXg 3. Java Ì CGI vOðÀs·é½ßÌT[oÌÝè(ȪÅ) 4. Java CGI vOÌÀs 4.1 CGI f̺ŠJava ðÀs·éÛÌáQ 4.1.1 Java ÌvOÍÊÌÀst@CÌæ¤ÉÍÀsÅ«È¢ 4.1.2 Java Í«ÏÉANZX·éêÊIÈû@ð½È¢ 4.2 Java CGI vOÌÀsÉæéâèÌð 4.2.1 java.cgi XNvg 4.2.2 HTML Ì FORM ©çÌ java.cgi ÌN® 5. Java CGI NXÌgp 5.1 CGI 5.1.1 NX̶@ 5.1.2 NXÉ¢ÄÌྠ5.1.3 oÌTª 5.1.4 QÆ 5.1.5 CGI() 5.1.6 getNames() 5.1.7 getValue() 5.2 CGI_Test 5.2.1 oÌTª 5.2.2 QÆ 5.2.3 main() 5.3 Email 5.3.1 NX̶@ 5.3.2 Class Description 5.3.3 oÌTª 5.3.4 QÆ 5.3.5 Email() 5.3.6 send() 5.3.7 sendTo() 5.3.8 subject() 5.4 Email_Test 5.4.1 oÌTª 5.4.2 QÆ 5.4.3 main() 5.5 HTML 5.5.1 NXÌ® 5.5.2 NXÉ¢ÄÌྠ5.5.3 oTª 5.5.4 QÆ 5.5.5 HTML() 5.5.6 author() 5.5.7 definitionList() 5.5.8 definitionListTerm() 5.5.9 endList() 5.5.10 listItem() 5.5.11 send() 5.5.12 title() 5.6 HTML_Test 5.6.1 oÌTª 5.6.2 QÆ 5.6.3 main() 5.7 Text 5.7.1 NXÌ® 5.7.2 NXÉ¢ÄÌྠ5.7.3 oÌTª 5.7.4 QÆ 5.7.5 add() 5.7.6 addLineBreak() 5.7.7 addParagraph() 6. «Ì\è 7. XVð 7.1 0.4 ©ç 0.5 ÅÌÏX_ 7.2 0.3 ©ç0.4 ÅÌÏX 7.3 0.2 ©ç0.3 ÅÌÏX 7.4 0.1 ©ç0.2 ÅÌÏX ______________________________________________________________________ 1. ͶßÉ Java ÌÝvûj̽ßCvO}ÍÈPÉÍVXeÌ«ÏÖANZ XūܹñDܽCJava JLbg(JDK, Java Development Kit)ÌÝèÌ ½ßCvOðN®·éÉÍ¡Ìg[NªKvÆÈèÜ·ªC±êÍ HTML Ì FORM â CGI ÌìÆgÝí¹Äp¢éÉÍsÖÅ·D±êç̧ Àðñð·éû@Í¢Âà èÜ·ªCMÒͻ̤¿ÌêÂðÀµÜµ ½DÚµÍãÌÍð©Ä¾³¢D MÒªOÌið¢½1996NæèCJava ÌZpÍå«Ï»µÄ¢Ü·D T[o¤Å Java vOðÀs·é½ßÌæèDê½ðª»ÝÍpÅ« Ü·DT[ubg(servlet)ð²×ÄÝľ³¢D 1.1. {¶ÅOñÆ·ém¯ MÒÍ HTML â CGI ÌTOÉ¢ÄÌêÊIÈm¯¨æÑÇÒ©gªg¤ HTTP T[oÉ¢ÄÌŬÀÌm¯ðÁÄ¢é±ÆðOñƵܷDÜ ½CÇÒª Java ÌvOÌ«ûðmÁĢȯêÎC{¶Ìåª Í³Ó¡ÉÈÁĵܤÆv¢Ü·D 1.2. {¶É墀 {¶ÌÅVÅÍ http://www.orbits.com/software/Java_CGI.html ÅÇÞ± ƪūܷD 1.3. vOEpbP[WÉ墀 {¶ÅྷévOÌpbP[WÌÅVÅÍ ftp://ftp.orbits.com/pub/software/java_cgi-0.5.tgz ©ç anonymous FTP ÅüèÅ«Ü·DpbP[WÉÍ{¶Ì SGML \[XàÜÜêĢܷD pbP[WÍ GNU Library General Public License ÌðÉ]ÁÄzz·é ±ÆªÅ«Ü·D{¶»ÌàÌÍ Linux HOWTO copyright notice ÌðÉ ]ÁÄzz·é±ÆªÅ«Ü·D (ó: ú{êóà Linux HOWTO copyright notice É]ÁÄzz·é±ÆªÅ«Ü·D) ൱Ì\tgEFAðg¤êÉÍC¼Ìlà±Ì Java CGI NXð©Â ¯é±ÆªÅ«éæ¤É http://www.orbits.com/software/Java_CGI.html Ö ÌnCp[t@Xð£ÁÄ¢½¾¯éÆK¢Å·D MÒͱÌpbP[WÌeiXâT|[gðs¤ÔªæêÈÈÁ½ ½ßC±êª¨»çÅI[XÆÈèÜ·D±ÌvOªCÉüÁ ÄCeiXðø«p²¤Æ¢¤ûª¢çÁµáêÎMÒ( javacgi-document@orbits.com)ɲA¾³¢D 1.4. [OXg ±Ì\tgEFAÌCXg[âpɨ¯é¤ÊÌâèðÊµÄ¨Ý¢Ì ìÆð¯¦éæ¤É·é½ßCMÒÍ majordomo Ì[OXgð ìèܵ½D javacgi-request@orbits.com ¶É{¶ª subscribe Å é [ðÁľ³¢D 2. Java Ì CGI vOðÀs·é½ßÌT[oÌÝè(à¾Â«) ±ÌÍÅÍCJava CGIpbP[WÌCXg[É¢ÄC[UÌìªÇ Ìæ¤Èe¿ðyÚ·©àª©éæ¤ÉCڵྵܷDPÉCXg[ ·é±ÆªÚIÅCש¢RÍ ÜèCÉÈçÈ¢lÍC±ÌÍÍòε Ä``Java Ì CGI vOðÀs·é½ßÌT[oÌÝè(ȪÅ)'' Öi ñž³¢D 2.1. v³êéVXe«\ ±Ì\tgEFAÍ Java JLbgªCXg[³êÄ¢éÙÆñÇSÄ Ì UNIX n OS ÌEFuT[oãÅ®ìµÜ·DMÒÍ Debian Linux pbP [Wðp¢Ä¨èCHTTP f[ƵÄÍ apache ðgÁĢܷDൠȽªgÁÄ¢éT[oãÅ®ìµÈ©Á½êÉÍC[OXgÅA µÄ¾³¢DÚµÍ ``[OXg''ðQƵľ³¢D cOȪç Java ^CC^v^ÍðåÊÁï·éæ¤Å·D Java Ì CGI vOð½³ñÀs·éæ¤ÈçÎCT[o@Ìð ݵ½ûªÇ¢©àµêܹñD 2.2. Java CGI AhIE\tgEFA Java Éæé CGI vOÀsðx·é½ßɪ¢½\tgEFAÍ Java CGIƾ¢Ü·D±ÌpbP[WÍ ftp://ftp.orbits.com/pub/software/java_cgi-0.5.tgz ©çüè·é±Æª Å«Ü·(o[WÔÍÏíé©àµêܹñ)D 2.3. \[XÌWJ ܸC{pbP[WðWJ·éKÈfBNgðßÜ·D (eí\[X ðWJ·éWÌfBNgðܾßĢȢêÉÍC /usr/local/srcÉ·é̪Ǣŵå¤D) ÉȺÌR}hÅpbP[W ðWJµÜ·D gzip -dc java_cgi-0.5.tgz | tar -xvf - ±ÌìÉæè java_cgi-0.5 Æ¢¤fBNgªÅ«Ü·D±ÌfBN gàÉÍC{¶Å±êÈ~ÉoÄét@Cª é͸ŷD(àµo [WÔªÏíÁÄ¢éêÉÍC±êÈ~ÍpbP[WÉÜÜêé¶ Ìw¦É]Áľ³¢D) 2.4. [JpXÉ¢ÄÌûjÌè ±±ÅÍCJava CGI pbP[Wðzu·éêðßéKvª èÜ·D± êÍêÊIÉÍcgi-binª éfBNgɵܷDÌ apacheT[o Ícgi-binfBNgÆµÄ /var/www/cgi-binðp¢éæ¤ÝèµÄ¢éÌ ÅCJava CGI ÌvOðuêƵÄ/var/www/javacgiðgÁÄ¢Ü ·DùÉ CLASSPATHÉÜÜêÄ¢éfBNgÉ Java CGI ÌvOð u±ÆÍDÜêÈ¢Æv¢Ü·Dêðß½çCVXeÝèð½f³¹ é½ßÉ Makefile ðÒWµÜ·DÉ root ÅOCµÄCmake installðÀsµÜ·D±êÉæÁÄCJava ÌvOªRpC³ êCjava.cgiXNvgªVXeÝèɶÄC³³êCevOªK ØÈêÉCXg[³êÜ·D±êçÉÁ¦Ä{¶Ì HTML ÅâeXg pÌ HTML ¶ªKvÅ êÎC make installÌãíèÉmake allðÀsµ Ü·D 2.5. CXg[ÌeXg pbP[WÉæÁÄCXg[ªsíêé HTML ¶ÍC javacgitest.html, javaemailtest.html yÑ javahtmltest.htmlÅ·DOß Åmake allðÀsµ½êÉÍC±êçÌ¶Í MakefileÌ WEBDIR Åw èµ½fBNgÉ èÜ·D»¤ÅÈ¢êÉÍCjavacgitest.html- dist, javaemailtest.html-distCjavahtmltest.html-dist ©çe¶ðìé ½ßÉmake testðÀsµÄ¾³¢D {ÍNCAg¤Å;çêȢ͸Ìeíîñª\¦³êÄ¢êÎCC Xg[ª³íÉūĢܷD±êðm©ß½ãÍC CGI_Test.class, Email_Test.class, HTML_Test.classð JAVACGI fBNg©çC javacgitest.html, javaemailtest.html, javahtmltest.html Í WEBDIR fB Ng©çíµÄà\¢Ü¹ñD 3. Java Ì CGI vOðÀs·é½ßÌT[oÌÝè(ȪÅ) o Java CGI pbP[Wð ftp://ftp.orbits.com/pub/software/java_cgi-0.5.tgz ©çüèµÜ·D (o[WÔÍÏíé©àµêܹñD) o pbP[WðÌR}hÅWJµÜ·: gzip -dc java_cgi-0.5.tgz | tar -xvf - (àµo[WÔªÏíÁÄ¢éêÉÍC±êÈ~ÍpbP[WÉÜÜ êé¶Ìw¦É]Áľ³¢D) o WJÉæÁÄVµÅ«½fBNgàÉ éMakefileðÒWµC java_cgi-0.5̪ð ȽªgÁÄ¢éVXeÉí¹ÄÏXµÜ ·D o root ÉÈÁÄmake installðÀsµÜ·D±êÉæè Java vOÌ RpCCVXeÁLÌîñÌKpCet@CÌCXg[ªs íêÜ·D{¶Ì HTML ÅÆeXgpÌ HTML ¶ªKvÈêÉÍC make installÌãíèÉmake allðÀsµÜ·D o ÈãÅõ®¹Å·D 4. Java CGI vOÌÀs 4.1. CGI f̺ŠJava ðÀs·éÛÌáQ WWW T[o©ç Java ÌvOðÀs·éÛÉÍ 2ÂÌå«Èâèª è Ü·: 4.1.1. Java ÌvOÍÊÌÀst@CÌæ¤ÉÍÀsÅ«È¢ Java ÌvOðÀs·é½ßÉÍCR}hCãÅJava ^C EC^v^ðÀsµC±êÉúNX(Às·évO)ð^¦È ¯êÎÈèܹñDƱëªCHTML Ì FORM ðg¤êCWWW T[oÉR} hCð³¦é±ÆÍūܹñD 4.1.2. Java Í«ÏÉANZX·éêÊIÈû@ð½È¢ Java ÌvOªKvÆ·é«ÏÍC¾¦IÉnµÄâçȯêÎÈ èܹñD C¾êÌgetenv()ÖÌæ¤Èû@Í èܹñD 4.2. Java CGI vOÌÀsÉæéâèÌð ±êçÌâèðð·é½ßCJava C^v^ªKvÆ·éîñð^¦é ½ßÌ CGI VFXNvgðìèܵ½D 4.2.1. java.cgi XNvg ±ÌVFXNvgÍ HTTP f[Æ Às·é Java CGI vOÌ âèÆèðǵܷD±ÌXNvgÍCܸÀs·évO̼Oð T[oª^¦½f[^©çWJµÜ·DÉSÄÌ«Ïðe|t@ CÉWßÜ·D»ê©çC«ÏÉ¢ÄÌîñt@C̼OÆvO ̼OðR}hCÉwèµÄJava C^v^ðÀsµÜ·D ``[JpXÉ¢ÄÌûjÌè'' ÌßÅÝè¨æÑCXg[³ê ĢܷD 4.2.2. HTML Ì FORM ©çÌ java.cgi ÌN® Java CGI ðg¤ FORM ÅÍȺÌæ¤É FORM ÌANVðwèµÜ·: <form action="/cgi-bin/java.cgi/CGI_Test" method="POST"> ±±ÅC/cgi-bin/Í[JÌ CGI fBNgÅ èC java.cgiÍWWWã ÅÌ Java ÌÀsðÂ\É·é Java tgGhÅ·D»µ ÄCCGI_TestÍÀs·é Java vO̼OÌáÅ·D 5. Java CGI NXÌgp »ÝÍ ``CGI'', ``Email'', ``HTML'' Ì3ÂÌåvNXªT|[g³êÄ ¢Ü·D³çÉ MIME `®ÌüoÍðµ¤NX(MIMEin Æ MIMEout)ÌÇÁ ðl¦Ä¢Ü·D T|[gÆeXg̽ßÌNXà¢Â© èÜ·D ``CGI_Test'', ``Email_Test'', ``HTML_Test'' ÍCXg[ª³íÉsíêÄ¢é©Ç¤ ©eXg·é½ßÉp¢Ü·D±êçÌNXͱÌNXCuðp¢ é Java vOðìé½ßÌo_ƵÄàpÅ«Ü·D ``Text'' N XÍEmail NXÆ HTML NX¼ûÌX[p[NXÅ·D 5.1. CGI 5.1.1. NX̶@ public class CGI 5.1.2. NXÉ¢ÄÌྠCGI NXÍuCGI îñvÂÜèCWWW T[oÉæÁÄÝè³êé«ÏÆ submitANVªIð³ê½ÉtH[©ççêé¼O/lÌgðÛ µÜ·D ±ÌNXÍ``Orbits.net''pbP[WÉÜÜêÜ·D 5.1.3. oÌTª ______________________________________________________________________ CGI() // RXgN^ getNames() // ¼OÌXgÌæ¾ getValue() // wè³ê½¼OÉηélÌæ¾ ______________________________________________________________________ 5.1.4. QÆ CGI_Test 5.1.5. CGI() ÚI pÂ\È CGI f[^ðÜÞIuWFNg̶¬ ® public CGI() ྠCGI IuWFNgª¶¬³ê½CpÂ\È CGI îñÍVµ¢Iu WFNgÌÇÌæÉSÄ^¦çêéD 5.1.6. getNames() ÚI lÆÎÉÈé¼OðñƵÄ^¦é ® public Enumeration getNames () ྠηélªè`³êÄ¢é¼OðSÄÜÞXgð^¦éD Ôèl è`³ê½¼OðSÄÜÞ EnumerationD 5.1.7. getValue() ÚI ¼OÉηélð¾éD ® public String getValue ( String name ) ྠ±Ì\bhÍ HTML Ì FORM æèçêé¼O Æl ÌÎð^¦ éD ø« name lðIð·é½ßÌL[D ßèl wèµ½¼OÉηél𦷠StringD 5.2. CGI_Test ±ÌNXÍCGINXÌgpáÌñ¦ÆCJava CGIpbP[Wª³µ®ì µÄ¢é©mF·éeXg̽ßÉp¢éD 5.2.1. oÌTª ______________________________________________________________________ main() // Program main() ______________________________________________________________________ 5.2.2. QÆ CGI 5.2.3. main() ÚI main() \bhð^¦éD ® public static void main( String argv[] ) ྠ±êÍ CGI vOÌî{`Å èC®ì»ÌàÌÍsíÈ¢ªC pÂ\ȼO/lÌgƻ̻ÝÌlðXgƵÄÔ·D ø« argv[] java.cgi XNvgÉæÁÄvOÉ^¦çêéø«D» _ÅÍ¢gpÅ éD 5.3. Email 5.3.1. NX̶@ public class Email extends Text 5.3.2. Class Description Text NXÌ add*() \bhƱÌNXªÇÁ·édq[êpÌ \bhÉæÁÄbZ[Wð\¬·éD ±ÌNXÍ ``Orbits.net'' pbP[WÉÜÜêéD 5.3.3. oÌTª ______________________________________________________________________ Email() // RXgN^ send() // dq[ðM·é sendTo() // bZ[WÉ Äæðt¯é subject() // bZ[WÌTuWFNgðÝè·é ______________________________________________________________________ 5.3.4. QÆ Email_Test, Text 5.3.5. Email() ÚI dq[ÌbZ[WðÜÞIuWFNg𶬷éD ® public Email() ྠóÌbZ[W𶬷éD±êÍ Email NXÌe\bhÉæÁ Ä®¬³ê½bZ[WÆÈéD QÆ Text 5.3.6. send() ÚI dq[ÌbZ[WðM·éD ® public void send () ྠ±Ì\bhÍbZ[WÌ®ð®¦ÄM·éD¶æªwè³êÄ ¢È¢êÉͽàsíÈ¢D 5.3.7. sendTo() ÚI bZ[WɶæðÇÁ·éD ® public String sendTo ( String address ) ྠaddress ɱÌ\bhÉηé¶æÌXgðÇÁ·éD\bh© ÌÍdq[̶æÌͧÀµÈ¢Dµ©µXgªå«·¬éê ÉÍC[zVXȩÀðz¦½èCvZ@ÌðÁï µs·Â\«ª éD ø« address bZ[Wðé¶æ 5.3.8. subject() ÚI bZ[WÌTuWFNgðÝè·éD ® public void subject ( String subject ) ྠ±Ì\bhÍdq[Ì Subject: sÌeLXgðÝè·éD¡ ñÄÑo³ê½êÉÍCÅàÅãÌà̪TuWFNgƵÄp¢ç êéD ø« subject bZ[WÌSubject: sÌeLXg 5.4. Email_Test ±ÌNXÍEmailNXÌgpáÌñ¦ÆCJava CGIpbP[Wª³µ® ìµÄ¢é©mF·éeXg̽ßÉp¢éD 5.4.1. oÌTª ______________________________________________________________________ main() // Program main() ______________________________________________________________________ 5.4.2. QÆ Email 5.4.3. main() ÚI main() \bhð^¦éD ® public static void main( String argv[] ) ྠ±êÍ CGI vOÌî{`Å èCpÂ\ȼO/lÌgÆ»Ì »ÝÌlðXgƵÄÔ·DܽCEmailÏÅwèµ½AhXÖ XgÌàeðM·éD p[^ argv[] java.cgiXNvgªvOÉ^¦éø«D»_ÅÍ¢g pÅ éD 5.5. HTML 5.5.1. NXÌ® public class HTML extends Text 5.5.2. NXÉ¢ÄÌྠTextNXÌadd*()\bhƱÌNXÉæÁÄÇÁ·é HTML êpÌ \bhÉæÁÄbZ[Wð쬷éD®¬µ½bZ[WÍwè³ê½ê ÉçêéD »_ÅÍXg¶¬\bhª³µ¢ÔÅsíê½±ÆðmF·éG[ `FbNÍÀsµÄ¢È¢D]ÁÄCHTML ¶@á½ÆÈçÈ¢æ¤É·éÌ ÍvO}ÌÓCÅ éD ±ÌNXÍ``Orbits.net''pbP[WÉÜÜêéD 5.5.3. oTª ______________________________________________________________________ HTML() // RXgN^ author() // ¶ÌìÒ̼OðÝè definitionList() // è`XgJn definitionListTerm() // è`XgÉÚðÇÁ endList() // XgI¹ listItem() // XgÉGgðÇÁ send() // HTMLbZ[Wðé title() // ¶Ì^CgðÝè ______________________________________________________________________ 5.5.4. QÆ HTML_Test, Text 5.5.5. HTML() ÚI HTMLbZ[WðÂIuWFNgð¶¬·é ® public HTML() ྠóÌbZ[W𶬷éDbZ[WÍHTML NXÌe\bhð p¢Ä®¬³¹éD QÆ Text 5.5.6. author() ÚI ¶ÌìÒ̼OðÝè·éD ® public void author ( String author ) ྠauthorɶÌìÒ̼OðÝè·éD ø« author bZ[WÌìÒƵÄp¢çêéeLXgD QÆ title() 5.5.7. definitionList() ÚI è`XgðJn·éD ® public void definitionList () ྠè`XgðJn·éDè`XgÍÁÊÈXgÅ èCeGg [ªÚ¼Æ»êɱè`eLXg©çÈéXgÅ éDè`X gÌJnÌãÉÍC(Åá)1ÂÌÚ¼/eLXgÌg̶¬¨æÑ endList\bhÌÄÑoµðsíȯêÎÈçÈ¢D»ÝÍXgð üêqɵÄÍÈçÈ¢_ÉÓ¹æD QÆ definitionListTerm(), endList(), listItem() 5.5.8. definitionListTerm() ÚI è`XgÉÚðÇÁ·éD ® public void definitionListTerm () ྠè`XgÉÚðÇÁ·éDXgÌ»ÝÌGg[ÌÚ¼ÉÎ ·éeLXgÍC±Ì\bhÌÄÑoµæèàãC©Âη élistItem\bhÌÄÑoµÌOÉÇÁµÈ¯êÎÈçÈ¢D QÆ definitionList(), listItem() 5.5.9. endList() ÚI XgðI¹·éD ® public void endList () ྠXgðI¹·éD±Ì\bhÍXgð¶éD»ÝÍXgÍü êqÉÈÁÄÍÈçÈ¢_ÉÓ¹æD QÆ definitionList() 5.5.10. listItem() ÚI XgÉGg[ðÇÁ·éD ® public void listItem () public void listItem ( String item ) public boolean listItem ( String term, String item ) ྠXgÉÚðÁ¦éDÅÌ®ªp¢çêéÆC»ÝÌXgvf ÉηéeLXgÍC±Ì\bhªÄÑo³ê½æèàãC©Â¼Ì XgÉÖ·é\bhªÄÑo³êéæèàOÉbZ[WÉÇÁ³ êȯêÎÈçÈ¢D 2ÔÚC3ÔÚÌ®ÌêÉÍCvfÉηé eLXgÍbZ[WÉÇÁ³êÈ¢Å( é¢ÍÇÁµ½ãųç É)\bhÌø«ÆµÄwè³êéD 3ÔÚÌ®Íè`XgÁ LÌàÌÅ èCÚ¼ÆXgÌGg[Ìè`̼ûð^¦éD ø« item YXgÌGg[ÌeLXg term Yè`XgÌÌÚ¼ªÌeLXg QÆ definitionList(), definitionListTerm(), endList() 5.5.11. send() ÚI HTML bZ[WðéD ® public void send () ྠHTML bZ[WðéD 5.5.12. title() ÚI ¶Ì^Cgð¦·eLXgðÝè·éD ® public void title ( String title ) ྠ¶Ì^Cgð¦·eLXgðÝè·éD ø« title bZ[WÌ^Cgð¦·eLXg QÆ author() 5.6. HTML_Test ±ÌNXÍHTMLNXÌgpáÌñ¦ÆCJava CGIpbP[Wª³µ®ì µÄ¢é©mF·éeXg̽ßÉp¢éD 5.6.1. oÌTª ______________________________________________________________________ main() // Program main() ______________________________________________________________________ 5.6.2. QÆ HTML 5.6.3. main() ÚI main()\bhð^¦é ® public static void main( String argv[] ) ྠ±êÍ CGI vOÌî{`Å èCHTML¶àÅpÂ\ȼ O/lÌgƻ̻ÝÌlðXgƵÄÔµC¼O/lÌ»ê¼êÌg ðè`XgÌvfƵÄ\¦·éD ø« argv[] java.cgiXNvgÉæÁÄvOÉ^¦çêéø«D» _ÅÍ¢gpÅ éD 5.7. Text 5.7.1. NXÌ® public abstract class Text 5.7.2. NXÉ¢ÄÌྠ±ÌNXÍEmail NXÆ HTML NXÌX[p[NXÅ éDbZ[ WͱÌNXÌ\bhÉæÁĶ¬³êCeTuNXÌ\bhðgÁ Ä®¬³¹½è®`µ½è·éD ±ÌNXÍ``Orbits.text''pbP[WÉÜÜêéD 5.7.3. oÌTª ______________________________________________________________________ Text() // RXgN^ add() // IuWFNgÉeLXgðÇÁ addLineBreak() // såØèðÇÁ addParagraph() // iåØèðÇÁ ______________________________________________________________________ 5.7.4. QÆ Email, HTML 5.7.5. add() ÚI eLXgÚÉeLXgðÇÁ·éD ® public void add ( char addition ) public void add ( String addition ) public void add ( StringBuffer addition ) ྠeLXgÚÌàeÉadditionðÇÁ·éD ø« addition eLXgÚÉÇÁ·éeLXg QÆ addLineBreak(), addParagraph() 5.7.6. addLineBreak() ÚI eLXgÌ»ÝÊuÅsðæØéD ® public void addLineBreak () ྠeLXgÌ»ÝÊuÉsåØèðÇÁ·éD QÆ add(), addParagraph() 5.7.7. addParagraph() ÚI Vµ¢iðJn·éD ® public void add () ྠ¶ÍÌ»ÝÊu©çVµ¢iðJn·éD QÆ add(), addLineBreak() 6. «Ì\è o EmailNXÖÌÇÁ: Email( int capacity ) bZ[WÉÇ꾯ÌÌæÌèĪKv©²×éÉp¢éD sendTo( String [] address ) dq[ÌbZ[WÉvC}̶æÌXgðÇÁ·éD sendCc( String address ) dq[ÌbZ[WÉJ[{Rs[̶æðÇÁ·éD sendCc( String [] address ) dq[ÌbZ[WÉJ[{Rs[̶æÌXgðÇÁ·éD sendBcc( String address ) dq[ÌbZ[WÉuChEJ[{Rs[̶æðÇÁ· éD sendBcc( String [] address ) dq[ÌbZ[WÉuChEJ[{Rs[̶æÌXg ðÇÁ·éD o HTMLNXÖÌÇÁ: HTML( int capacity ) bZ[WÉÇ꾯ÌÌæÌèĪKv©²×éÉp¢éD public void unorderedList() ³µXgðJn·é public void orderedList() t«XgðJn·é public void directoryList() fBNgXgðJn·é public void menuList() j [XgðJn·é void anchor( String anchorName ) AJ[Ìwè void link( String url, String text ) NÌwè void applet( String url, String altText ) AvbgÌNwè o XgÌüêqðÜÞHTMLðg¦éæ¤É·éD o HTML Xg𳵢ɳ¹é½ßÌG[»èR[hÌÇÁD o «Ïf[^ð«o·t@CÌÊuð Makefile ÅÝèÅ«éæ¤ É·éD o GET \bhÉæéf[^]ÌÛɶ¶éCóÅ é¼O/lÌgÌ o A±IÉϼð^¦é½ßÉCCGI É java.util.Enumeration C^ tF[XðÀ·é±Æðl¶·éD o ±ÌpbP[WÌSÄÌ\bhðg¤CTestNXÌÇÁD o fobO̽ßÉCN^ÈeXgðÅ«éæ¤É·é½ßC CGI_Test, Email_Test, HTML_TestͨݢÇÌæ¤É˶µÄ¢é©ðà ¾·éD o {pbP[WÅpÂ\ÈSÄÌ@\ðTest ªÇÌæ¤ÉµÄgÁÄ¢é ©É¢ÄྷéD 7. XVð 7.1. 0.4 ©ç 0.5 ÅÌÏX_ o ±Ì[XªÅIÅÅ é±Æð½f³¹éæ¤É¶ÆRgðÏ Xµ½D 7.2. 0.3 ©ç0.4 ÅÌÏX o ŬÀÌ@\ð^¦é½ßCHTMLNXÌ@\É÷t¯ðµ½D o HTML_Test NXyÑ javahtmltest.html-dist ð쬵½D o HTML NXÌ\bhÉÉè`Xg̵¢ðÇÁµ½D 7.3. 0.2 ©ç0.3 ÅÌÏX o Text NXÆ Email NXðÇÁD HTML NXàÇÁµ½ªC»_ ÅÍX^uÌÝÅ éD o ³Ü´ÜÈNXðpbP[WÉÜÆß½DSÆÈéNX ÍOrbits.net.*Å èCâNX Text Í Orbits.text.TextÉÜÜê éD o CGItest ð CGI_Test ÉÏXD o Email_Test NXðÇÁµ½D 7.4. 0.1 ©ç0.2 ÅÌÏX o «Ïð Java C^v^ÌR}hCÉlßÞÌðâßÄC e|t@CÉ«Þæ¤Éµ½D CGI NXÆ java.cgi ðC ³µ½D o javacgitest.html ¶ðì¬CpbP[WÉÜß½D o CXg[É make ª«·¦éeLXgt@Cð쬵½D±ê çÍ-distÅIé¼OÉµÄ éD