Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > by-pkgid > d40f11cf5b21d4287bbb5af7cbeec0a9 > files > 32

howto-text-ko-2006-5mdv2010.0.noarch.rpm

  Java CGI HOWTO

  by David H. Silber javacgi-document@orbits.com
  1998³â 12¿ù 1ÀÏ ¹öÀü 0.5
  ¿Å±äÀÌ:¹ÚÁÖÈñ(jhpark@osnn.hanyang.ac.kr)

  ÀÌ HOWTO ¹®¼­´Â ¾î¶»°Ô ÀÚ¹Ù·Î ÀÛ¼ºµÈ CGI ÇÁ·Î±×·¥ÀÌ ¼­¹ö¿¡¼­ »ç¿ë°¡´É
  Çϵµ·Ï ¼³Á¤ ÇÏ¸ç ¶Ç CGI ÇÁ·Î±×·¥À» ÀÛ¼ºÇϱâ À§ÇØ ¾î¶»°Ô ÀÚ¹Ù¸¦
  »ç¿ëÇÏ´ÂÁö¸¦ ¼³¸íÇÑ´Ù.  HOWTO ¹®¼­µéÀº ¸®´ª½º ¿î¿µÃ¼Á¦¿¡¼­ÀÇ »ç¿ëÀ»
  ¸ñÀûÀ¸·Î ÀÛ¼ºµÇÁö¸¸, ƯÁ¤ÇÑ À¯´Ð½º ¹öÀü¿¡ »ó°ü ¾øÀÌ Àû¿ëµÈ´Ù.
  ______________________________________________________________________

  ¸ñÂ÷

  1. ¼Ò°³
     1.1 »çÀü Áö½Ä
     1.2 º» ¹®¼­¿¡ °üÇÏ¿©
     1.3 ÆÐÅ°Áö
     1.4 ¸ÞÀϸµ ¸®½ºÆ® AID CDATA mailing-list(LABEL)LABEL

  2. ÀÚ¹Ù CGIÇÁ·Î±×·¥À» ½ÇÇàÇϱâ À§ÇØ ¼­¹ö ¼ÂÆÃÇϱâ (¼³¸í ÷ºÎ) AID CDATA install-long(LABEL)LABEL
     2.1 ½Ã½ºÅÛ ¿ä±¸»çÇ×
     2.2 Java CGI ¾Öµå-¿Â ¼ÒÇÁÆ®¿þ¾î
     2.3 ¼Ò½º ¾ÐÃà Ç®±â
     2.4 Áö¿ª °æ·Î(local path)¿¡ °üÇÑ ¹æħÀ» Á¤Ç϶ó AID CDATA make-programs(LABEL)LABEL
     2.5 ÀνºÅç Å×½ºÆ®Çϱâ AID CDATA install-test(LABEL)LABEL

  3. Java CGI ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°±â À§ÇÏ¿© ¼­¹ö ¼¼ÆÃÇϱâ(¿ä¾àÇüÅÂ) AID CDATA install-short(LABEL)LABEL
  4. Java CGI ÇÁ·Î±×·¥ ½ÇÇàÇϱâ
     4.1 CGI ¸ðµ¨ »ó¿¡¼­ ÀÚ¹Ù ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀ» ¸·´Â Àå¾Ö¹°
        4.1.1 ÀÚ¹Ù ÇÁ·Î±×·¥À» º¸Åë ½ÇÇàÆÄÀÏó·³ ½ÇÇà½Ãų ¼ö ¾ø´Ù.
        4.1.2 Àڹٴ ȯ°æ(º¯¼ö)¿¡ ´ëÇØ ÀϹÝÀûÀÎ ¾×¼¼½ºÇÒ ¼ö ¾ø´Ù.
     4.2 Java CGIÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¶§ÀÇ ¹®Á¦Á¡ ±Øº¹
        4.2.1 java.cgi ½ºÅ©¸³Æ®
        4.2.2 HTML formÀ¸·Î ºÎÅÍ java.cgi È£ÃâÇϱâ

  5. Java CGIŬ·¡½º »ç¿ëÇϱâ
     5.1 CGIAID CDATA cgi-class(LABEL)LABEL
        5.1.1 Ŭ·¡½º ¹®¹ý
        5.1.2 Ŭ·¡½º ¼³¸í
        5.1.3 ¸â¹ö ¿ä¾à
        5.1.4 ÂüÁ¶
        5.1.5 CGI()
        5.1.6 getNames()
        5.1.7 getValue()
     5.2 CGI_TestAID CDATA cgi-test-class(LABEL)LABEL
        5.2.1 ¸â¹ö¿ä¾à
        5.2.2 ÂüÁ¶
        5.2.3 main()
     5.3 EmailAID CDATA email-class(LABEL)LABEL
        5.3.1 Ŭ·¡½º ¹®¹ý
        5.3.2 Ŭ·¡½º ¹®¹ý
        5.3.3 ¸â¹ö ¿ä¾à
        5.3.4 Âü°í
        5.3.5 Email()
        5.3.6 send()
        5.3.7 sendTo()
        5.3.8 subject()
     5.4 Email_TestAID CDATA email-test-class(LABEL)LABEL
        5.4.1 ¸â¹ö ¿ä¾à
        5.4.2 ÂüÁ¶
        5.4.3 main()
     5.5 HTMLAID CDATA html-class(LABEL)LABEL
        5.5.1 Ŭ·¡½º ¹®¹ý
        5.5.2 Ŭ·¡½º ¼³¸í
        5.5.3 ¸â¹ö ¿ä¾à
        5.5.4 ÂüÁ¶
        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_TestAID CDATA html-test-class(LABEL)LABEL
        5.6.1 ¸â¹ö ¿ä¾à
        5.6.2 ÂüÁ¶
        5.6.3 main()
     5.7 TextAID CDATA text-class(LABEL)LABEL
        5.7.1 Ŭ·¡½º ¹®¹ý
        5.7.2 Ŭ·¡½º ¼³¸í
        5.7.3 ¸â¹ö ¿ä¾à
        5.7.4 Âü°í
        5.7.5 add()
        5.7.6 addLineBreak()
        5.7.7 addParagraph()

  6. ÇâÈÄ °èȹ
  7. º¯È­
     7.1 0.4¿¡¼­ 0.5°£ÀÇ º¯È­
     7.2 0.3¿¡¼­ 0.4°£ÀÇ º¯È­
     7.3 0.2¿¡¼­ 0.3°£ÀÇ º¯È­
     7.4 0.1¿¡¼­ 0.2°£ÀÇ º¯È­

  ______________________________________________________________________

  1.  ¼Ò°³

  ÀÚ¹Ù°¡ µðÀÚÀÎµÈ ¹æ½Ä ¶§¹®¿¡ ÇÁ·Î±×·¡¸Ó´Â ½Ã½ºÅÛÀÇ È¯°æ º¯¼öµéÀ» ½±°Ô
  ¾×¼¼½ºÇÒ ¼ö ¾ø´Ù.  Java Development Kit (JDK)°¡ ¼Â¾÷µÈ ¹æ½Ä ¶§¹®¿¡,
  ÇÁ·Î±×·¥À» È£ÃâÇϱâ À§Çؼ­´Â ¿©·¯ °³ÀÇ ÅäÅ«À» ÀÌ¿ëÇØ¾ß Çϸç, À̰͵µ
  Ç¥ÁØ HTMLÆû/CGI ÀÛµ¿¹æ½Ä°ú Àß ¸ÂÁö ¾Ê´Â´Ù. ÀÌ·¯ÇÑ ÇÑ°è¿¡ ´ëÇÑ ¸î °¡Áö
  ¹æ¹ýÀÌ ÀÖÀ¸¸ç, ÇÊÀÚ°¡ ±× Áß Çϳª¸¦ ±¸ÇöÇÏ¿´´Ù.ÀÚ¼¼ÇÑ °ÍÀº µÚ¸¦ ´õ
  Àо±æ ¹Ù¶õ´Ù.  ÀÌÀüÀÇ ¹®´ÜÀ» 1996³â¿¡ ÀÛ¼ºÇÑ ÀÌ·¡·Î ÀÚ¹ÙÀÇ ±â¼ú¿¡µµ
  ¸¹Àº º¯È­°¡ ÀÖ¾î¿Ô´Ù.  ¼­¹ö-Ãø(server-side) ÀÚ¹Ù ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°´Â
  °ÍÀÌ ´õ ³ªÀº ¹æ¹ýÀÏ ¼ö ÀÖÀ¸¸ç -- ¼­ºê¸´ÂÊÀ» »ìÆ캸¾Æµµ ±¦ÂúÀ» °ÍÀÌ´Ù.

  1.1.  »çÀü Áö½Ä

  ÇÊÀÚ´Â µ¶ÀÚµéÀÌ HTML°ú CGI °³³äµé¿¡ °üÇÑ ÀϹÝÀû Áö½Ä°ú ÃÖ¼ÒÇÑÀÇ
  HTTP¼­¹ö¿¡ °üÇÏ¿© ±âº»ÀûÀÎ Áö½ÄÀ» °®°í ÀÖ´Ù°í °¡Á¤ÇÑ´Ù.  ¹°·Ð ÀÚ¹Ù·Î
  ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â ¹ýÀ» ¾Ë¾Æ¾ß ÇÏ¸ç ±×·¸Áö ¸øÇϸé ÀÌ ¹®¼­´Â ÀÌÇØÇϱâ
  Èûµé´Ù.

  1.2.  º» ¹®¼­¿¡ °üÇÏ¿©

  º» ¹®¼­ÀÇ ÃÖ±Ù ÆÇÀº http://www.orbits.com/software/Java_CGI.html¿¡¼­
  ÀÐÀ» ¼ö ÀÖ´Ù.

  1.3.  ÆÐÅ°Áö

  º» ¹®¼­¿¡¼­ ¼³¸íÇÏ´Â ÆÐÅ°Áö´Â ´ÙÀ½ÀÇ anonymous FTP¿¡¼­ ¿¢¼¼½ºÇÒ ¼ö
  ÀÖ´Ù.  ftp://ftp.orbits.com/pub/software/java_cgi-0.5.tgz.  ÆÐÅ°Áö¿¡´Â
  º» ¹®¼­ÀÇ SGML ¼Ò½ºµµ Æ÷ÇԵǾî ÀÖ´Ù.  º» ÆÐÅ°Áö´Â GNU Library General
  Public License Á¶Ç׿¡ ÀÇ°ÅÇØ ¹èÆ÷µÈ´Ù. º» ¹®¼­´Â ¸®´ª½º HOWTO
  ÆDZÇ(copyright) ÁÖÀÇ»çÇ׿¡ ÀÇ°ÅÇؼ­ ¹èÆ÷µÈ´Ù.

  ¸¸¾à º» ¼ÒÇÁÆ®¿þ¾î¸¦ »ç¿ëÇÑ´Ù¸é, ´Ù¸¥ »ç¶÷µéÀÌ Java CGIŬ·¡½º¸¦ ãÀ»
  ¼ö ÀÖµµ·Ï http://www.orbits.com/software/Java_CGI.html¸¦ ÂüÁ¶Çϱâ
  ¹Ù¶õ´Ù.

  ÇÊÀÚ°¡ º» ÆÐÅ°Áö¸¦ À¯ÁöÇÏ°í Áö¿øÇϴµ¥ »ç¿ëÇÒ ½Ã°£ÀÌ ¾ø¾î¼­ º» ¹®¼­°¡
  ¾Æ¸¶ ¸¶Áö¸· ÆÇÀÌ µÉ °ÍÀÌ´Ù.  ¾Æ¹«¶óµµ º» ¼ÒÇÁÆ®¿þ¾î¸¦ ¾Æ³¢¾î
  À¯Áöº¸¼ö¸¦ ÀμöÇÏ·Á ÇÑ´Ù¸é, javacgi-document@orbits.comÀ¸·Î ¿¬¶ô
  ¹Ù¶õ´Ù.

  1.4.  ¸ÞÀϸµ ¸®½ºÆ®

  »ç¶÷µéÀÌ º» ¼ÒÇÁÆ®¿þ¾î¸¦ ÀνºÅçÇÏ°í »ç¿ëÇϴµ¥ À־ÀÇ »óÈ£ÀÇ
  ¹®Á¦Á¡µéÀ» ¼­·Î µ½°íÀÚ ÇÊÀÚ°¡ majordomo (¿ªÀÚÁÖ:¸ÞÀϸµ ¸®½ºÆ® ¸Þ´ÏÀúÀÇ
  Çϳª) ¸®½ºÆ®¸¦ ¸¸µé¾ú´Ù.  subscribe¶ó´Â ¸»À» Àû¾î¼­ javacgi-
  request@orbits.com·Î ¸Þ½ÃÁö¸¦ º¸³»±â ¹Ù¶õ´Ù.
  2.  ÀÚ¹Ù CGIÇÁ·Î±×·¥À» ½ÇÇàÇϱâ À§ÇØ ¼­¹ö ¼ÂÆÃÇϱâ (¼³¸í ÷ºÎ)

  ÀÌ ºÎºÐÀº ¼³Ä¡ ÀÛ¾÷ÀÌ ¾î¶² ¿µÇâÀ» ³¢Ä¡´ÂÁö ¿©·¯ºÐ ÀÚ½ÅÀÌ ¾Ë°Ô Çϱâ
  À§ÇØ Ç³ºÎÇÑ ¼³¸í°ú ÇÔ²² ÇÊÀÚÀÇ Java CGI ÆÐÅ°Áö¸¦ ÀνºÅç ÇÒ °ÍÀÌ´Ù.
  ¸¸¾à º» ÇÁ·Î±×·¥À» ÀνºÅ縸 ÇÏ°í ¿ÖÀÎÁö ±×¸®°í ¿Ö ±×·¡¾ß¸¸ ÇÏ´ÂÁö¿¡
  ´ëÇÑ °ÍÀº ½Å°æ ¾² Áö ¾Ê´Â´Ù¸é, ´ÙÀ½À¸·Î ³Ñ¾î°¡¶ó.  ``ÀÚ¹Ù
  CGIÇÁ·Î±×·¥À» ½ÇÇàÇϱâ À§ÇØ ¼­¹ö ¼ÂÆÃÇϱâ (¿ä¾à)''.

  2.1.  ½Ã½ºÅÛ ¿ä±¸»çÇ×

  º» ¼ÒÇÁÆ®¿þ¾î´Â Java Development KitÀÌ ÀνºÅçµÈ ´ëºÎºÐÀÇ À¯´Ð½º ÇüÅÂÀÇ
  À¥ ¼­¹ö¿¡¼­ ÀÛµ¿ÇÒ °ÍÀÌ´Ù.  ÇÊÀÚ´Â apache¸¦ HTTP µ¥¸óÀ¸·Î ½ÇÇà½ÃÅ°¸ç
  Debian Linux¸¦ »ç ¿ëÇÏ°í ÀÖ´Ù.  ¸¸¾à ½ÇÇàµÇÁö ¾ÊÀ¸¸é, ¸ÞÀϸµ ¸®½ºÆ®¸¦
  ã¾Æº¸±æ ¹Ù¶õ´Ù.  ÀÚ¼¼ÇÑ °ÍÀº ``¸ÞÀϸµ ¸®½ºÆ®''¸¦ ÂüÁ¶Ç϶ó.  ºÒÇàÈ÷µµ
  ÀÚ¹Ù ·±Å¸ÀÓ ÀÎÅÍÇÁ¸®ÅÍ´Â ¸Þ¸ð¸®¸¦ ¸¹ÀÌ ÇÊ¿ä·Î ÇÏ´Â °Í °°´Ù-- Java CGI
  ÇÁ·Î±×·¥µéÀ» ¿©·¯ ¹ø ½ÇÇàÇÑ´Ù¸é ·¥ÀÌ ´õ ÇÊ¿äÇÒ °ÍÀÌ´Ù.

  2.2.  Java CGI ¾Öµå-¿Â ¼ÒÇÁÆ®¿þ¾î

  º» ¹®¼­¿¡¼­ ¼³¸íÇÏ·Á´Â ¼ÒÇÁÆ®¿þ¾î´Â Java CGI¶ó°í ÇÑ´Ù.
  ftp://ftp.orbits.com/pub/software/java_cgi-0.5.tgz¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù.
  ¹öÀüÀÌ º¯ÇßÀ»Áöµµ ¸ð¸¥´Ù.

  2.3.  ¼Ò½º ¾ÐÃà Ç®±â

  º» ÆÐÅ°Áö¸¦ Ç®¾î µÑ Àû´çÇÑ µð·ºÅ丮¸¦ ã´Â´Ù.  (´Ù¸¥ ÆÐÅ°Áö¸¦ Ç®¾î µÐ
  ÀÏÁ¤ÇÑ °÷ÀÌ ¾ø´Ù¸é, /usr/local/src¸¦ »ç¿ëÇ϶ó.)  ´ÙÀ½ÀÇ ¸í·ÉÀ¸·Î
  ¹èÆ÷ÆÇÀ» Ǭ´Ù.

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

  java_cgi-0.5µð·ºÅ丮°¡ »ý¼ºµÉ °ÍÀÌ´Ù..  °Å±â¿¡ ÀÌ ´ÙÀ½ ´Ü°èºÎÅÍ ÂüÁ¶
  ÆÄÀÏÀÌ ÀÖÀ» °ÍÀÌ´Ù.  (¹öÀüÀÌ ¹Ù²î¾ú´Ù¸é, Áö±ÝºÎÅÍ´Â ±× ¹èÆ÷ÆÇÀÇ ¼³¸íÀ»
  Âü°íÇ϶ó)

  2.4.  Áö¿ª °æ·Î(local path)¿¡ °üÇÑ ¹æħÀ» Á¤Ç϶ó

  Java CGIÇÁ·Î±×·¥µéÀ» ¾îµð¿¡ µÑÁö °áÁ¤ÇÑ´Ù. º¸Åë, cgi-binµð·ºÅ丮¿¡
  °°ÀÌ µÑ °ÍÀÌ´Ù. ÇÊÀÚÀÇ apache ¼­¹ö´Â cgi-bin µð·ºÅ丮·Î½á
  /var/www/cgi-binÀ» »ç¿ëÇÏ°Ô ¼³Á¤µÇ¾î À־, Java  CGI ÇÁ·Î±×·¥µéÀ»
  ³Ö¾îµÑ µð·ºÅ丮·Î´Â /var/www/javacgi¸¦ »ç¿ëÇÑ´Ù. ÁöÁ¤µÈ CLASSPATH
  µð·ºÅ丮¿¡ Java CGI ÇÁ·Î±×·¥µéÀ» ±ò°í ½ÍÁö ¾ÊÀ» Áöµµ ¸ð¸¥´Ù. ½Ã½ºÅÛ
  ¼³Á¤À» ¹Ý¿µÇϱâ À§ÇØ MakefileÀ» ÆíÁýÇÑ´Ù.  root·Î ·Î±×ÀÎ ÇÑ °ÍÀ»
  È®ÀÎÇÏ°í make install À» ½ÇÇàÇÑ´Ù. ÀÌ ¸í·ÉÀÌ ÀÚ¹Ù ÇÁ·Î±×·¥µéÀ»
  ÄÄÆÄÀÏÇÏ°í, java.cgi ½ºÅ©¸³Æ®¸¦ ½Ã½ºÅÛ¿¡ ¸Â°Ô º¯°æÇÏ°í Àû´çÇÑ °÷¿¡ ±×
  ÇÁ·Î±×·¥µéÀ» ÀνºÅçÇÑ´Ù.  Ãß°¡·Î, º» ¹®¼­ÀÇ HTML ¹öÀüÀ̳ª HTMLÅ×½ºÆ®
  ¹®¼­¸¦ ¿øÇÑ´Ù¸é, ´ë½Å make all À» ½ÇÇàÇÑ´Ù.

  2.5.  ÀνºÅç Å×½ºÆ®Çϱâ

  ¹èÆ÷ÆÇÀ¸·ÎºÎÅÍ  ÀνºÅçµÈ °ÍÀº javacgitest.html, javaemailtest.html ¿Í
  javahtmltest.htmlÀ̶ó´Â HTML¹®¼­µéÀÌ´Ù.  ¾ÕÀå¿¡¼­ all·Î ÀνºÅçÇß´Ù¸é,
  Makefile¿¡¼­ WEBDIR·Î ¼³Á¤µÈ µð·ºÅä ¸®¿¡ ÀÌ ¹®¼­µéÀÌ ÀÖÀ» °ÍÀÌ´Ù.
  ±×·¸Áö ¾Ê´Ù¸é javacgitest.html-dist, javaemailtest.html-dist ¿Í
  javahtmltest.html-dist·ÎºÎÅÍ ºôµå(build)Çϱâ À§ÇØmake  test¸¦ ½ÇÇàÇØ
  µµ µÈ´Ù.  ÀνºÅçÇÑ °ÍÀÌ Á¤È®ÇÏ°Ô  µ¿ÀÛÇÒ ¶§, JAVACGI  µð·ºÅ丮·ÎºÎÅÍ
  CGI_Test.class, Email_Test.class¿Í HTML_Test.class¸¦, WEBDIR
  µð·ºÅ丮·Î ºÎÅÍ´Â javacgitest.html, javaemailtest.html ¿Í
  javahtmltest.htmlÀ» Áö¿ì°í ½ÍÀ»Áöµµ ¸ð¸¥´Ù.  º¸Åë ¼­¹ö¿¡°Ô¸¸ »ç¿ë
  °¡´ÉÇÑ »ç¿ëÀÚ Á¤º¸¸¦ º¸¿©Áֱ⠶§¹®ÀÌ´Ù.
  3.  Java CGI ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°±â À§ÇÏ¿© ¼­¹ö ¼¼ÆÃÇϱâ(¿ä¾àÇüÅÂ)

  o  ftp://ftp.orbits.com/pub/software/java_cgi-0.5.tgz·ÎºÎÅÍ Java
     CGIÆÐ Å°Áö¸¦ ¾ò´Â´Ù.  (¹öÀüÀÌ º¯ÇßÀ»Áöµµ ¸ð¸¥´Ù)

  o  ´ÙÀ½ ¸í·É¾î·Î ¹èÆ÷ÆÇÀ» Ǭ´Ù:

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

  (¹öÀüÀÌ ¹Ù²î¾ú´Ù¸é, Áö±ÝºÎÅÍ´Â ±× ¹èÆ÷ÆÇÀÇ ¼³¸íÀ» Âü°íÇ϶ó)

  o  »õ·ÎÀÌ »ý¼ºµÈjava_cgi-0.5 µð·ºÅ丮¿¡¼­ ½Ã½ºÅÛ¿¡ ¸Â°ÔMakefileÀ»
     ÆíÁýÇÑ´Ù.

  o  root·Î½á make installÀ» ½ÇÇàÇÑ´Ù. ÀÌ ¸í·ÉÀÌ ÀÚ¹Ù ÇÁ·Î±×·¥À»
     ÄÄÆÄÀÏÇÏ°í, ¿©·¯ºÐÀÇ ½Ã½ºÅÛ¿¡ °ü·ÃµÈ Á¤º¸µéÀ» Àû¿ë(apply)½ÃÅ°°í
     ´Ù¾çÇÑ ÆÄÀϵéÀ» ÀνºÅç ÇÑ´Ù. ¸¸¾à   HTML·ÎµÈ º»  ¹®¼­¿Í  HTMLÅ×½ºÆ®
     ¹®¼­¸¦   ¿øÇÑ´Ù¸é, ´ë½Å  make allÀ» ½ÇÇàÇÑ´Ù.

  o  ÀÌÁ¦ Áغñ°¡ µÇ¾ú´Ù.

  4.  Java CGI ÇÁ·Î±×·¥ ½ÇÇàÇϱâ

  4.1.  CGI ¸ðµ¨ »ó¿¡¼­ ÀÚ¹Ù ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀ» ¸·´Â Àå¾Ö¹°

  À¥ ¼­¹ö¿¡¼­ ÀÚ¹Ù ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°´Âµ¥ À־ µÎ °¡Áö ¹®Á¦Á¡ÀÌ ÀÖ´Ù:

  4.1.1.  ÀÚ¹Ù ÇÁ·Î±×·¥À» º¸Åë ½ÇÇàÆÄÀÏó·³ ½ÇÇà½Ãų ¼ö ¾ø´Ù.

  Ä¿¸àµå ¶óÀλ󿡼­ ÀÚ¹Ù ·±Å¸ÀÓ ÀÎÅÍÇÁ¸®Å͸¦ ½ÇÇàÇÏ°í (ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÉ
  ¼ö ÀÖµµ·Ï) ÃʱâÈ­ Ŭ·¡½º°¡ ÀÖ¾î¾ß ÇÑ´Ù. HTML ÇüÅ·δ Ŀ¸àµå ¶óÀÎÀ» À¥
  ¼­¹ö¿¡ º¸³¾ ¼ö ¾ø´Ù.

  4.1.2.  Àڹٴ ȯ°æ(º¯¼ö)¿¡ ´ëÇØ ÀϹÝÀûÀÎ ¾×¼¼½ºÇÒ ¼ö ¾ø´Ù.

  ÀÚ¹Ù ÇÁ·Î±×·¥ÀÌ ÇÊ¿ä·Î ÇÏ´Â °³°³ÀÇ È¯°æº¯¼ö´Â Á¤È®ÀÌ ³Ñ°ÜÁ®¾ß(pass)
  ÇÑ´Ù.  C ¿¡¼­ÀÇ getenv() ÇÔ¼ö °°Àº ¸Þ¼Òµå´Â ¾ø´Ù.

  4.2.  Java CGIÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¶§ÀÇ ¹®Á¦Á¡ ±Øº¹

  À§ÀÇ Àå¾Ö¹°À» ó¸®Çϱâ À§ÇØ, ÀÚ¹Ù ÀÎÅÍÇÁ¸®ÅÍ¿¡°Ô ÇÊ¿äÇÑ Á¤º¸¸¦
  Á¦°øÇÏ´Â ½© CGIÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿´´Ù.

  4.2.1.  java.cgi ½ºÅ©¸³Æ®

  ÀÌ ½© ½ºÅ©¸³Æ®´Â »ç¿ëÇÏ°íÀÚ ÇÏ´Â Java CGIÇÁ·Î±×·¥°ú HTTPµ¥¸ó »çÀÌÀÇ
  »óÈ£ÀÛ¿ë(interaction)À» °ü¸®ÇÑ´Ù. ÀÌ ½ºÅ©¸³Æ®´Â ½ÇÇàÇÏ°íÀÚ ÇÏ´Â
  ÇÁ·Î±×·¥ÀÇ À̸§À» ¼­¹ö°¡ Á¦°øÇÏ´Â µ¥ÀÌŸ·ÎºÎÅÍ »Ì¾Æ³»¸ç ÀÓÀÇÀÇ ÀÓ½Ã
  ÆÄÀÏ ¾È¿¡ ȯ°æ µ¥ÀÌŸ(environment data) ¸ðµÎ¸¦ ¸ðÀº´Ù.  ±×¸®°í³ª¼­
  Ä¿¸àµå ¶óÀο¡ µ¡ºÙ¿©Áø ȯ°æ Á¤º¸ ÆÄÀÏÀÇ À̸§°ú ÇÁ·Î±×·¥ À̸§À» °¡Áö°í
  ÀÚ¹Ù ·±Å¸ÀÓ ÀÎÅÍÇÁ¸®Å͸¦ ½ÇÇà½ÃŲ´Ù.  java.cgi½ºÅ©¸³Æ®´Â ``Áö¿ª °æ·Î¿¡
  °üÇÑ ¹æħÀ» Á¤Ç϶ó'' ¿¡¼­ ±¸¼ºµÇ¾úÀ¸¸ç ÀνºÅçµÇ¾ú´Ù.

  4.2.2.  HTML formÀ¸·Î ºÎÅÍ java.cgi È£ÃâÇϱâ

  Java CGI ÇÁ·Î±×·¥À» »ç¿ëÇÏ´Â ÇÊÀÚÀÇ ÆûÀº ´ÙÀ½°ú °°ÀÌ form actionÀ»
  ¸í½ÃÇÑ´Ù:

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

  ¿©±â¼­   /cgi-bin/ Àº ¿©·¯ºÐÀÇ CGI ¹ÙÀ̳ʸ® µð·ºÅ丮À̸ç, java.cgi´Â
  À¥»ó¿¡¼­ Java ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°°Ô ÇØÁÖ´Â ÀÚ¹Ù front-end À̸ç,
  CGI_Test´Â ½ÇÇà½Ãų ÀÚ¹Ù ÇÁ·Î±×·¥ À̸§ÀÇ ¿¹ÀÌ´Ù.

  5.  Java CGIŬ·¡½º »ç¿ëÇϱâ

  ÇöÀç ¼¼°³ÀÇ ¸ÞÀΠŬ·¡½º°¡ Á¦°øµÈ´Ù.  ``CGI''¿Í ``Email''°ú
  ``HTML''ÀÌ´Ù.  ÇÊÀÚ´Â MIME ÇüÅÂÀÇ ÀÔÃâ·ÂÀ» ´Ù·ç´Â °¢°¢ÀÇ Å¬·¡½º-
  MIMEin °ú MIMEout - ¸¦ Ãß°¡ÇÒ »ý°¢ÀÌ´Ù.

  Áö¿ø¿ëŬ·¡½º¿Í Å×½ºÆ® Ŭ·¡½ºµµ ¸î °³ ÀÖ´Ù.  ``CGI_Test'',
  ``Email_Test'' ¿Í ``HTML_Test''´Â ÀνºÅçÀ» Å×½ºÆ®Çϱâ À§ÇÑ °ÍÀÌ´Ù.
  À̵é Ŭ·¡½º´Â ÀÌ Å¬·¡½º ¶óÀ̺귯¸®´Â »ç¿ëÇÏ´Â ÀÚ¹Ù ÇÁ·Î±×·¥¿¡¼­
  ½ÃÀÛÁ¡(starting- point)ó·³ »ç¿ëµÉ ¼öµµ ÀÖÀ»°ÍÀÌ´Ù.  ``Text'' Ŭ·¡½º´Â
  Email ¿Í HTML Ŭ·¡½ºÀÇ ¼öÆÛŬ·¡½ºÀÌ´Ù.

  5.1.  CGI

  5.1.1.  Ŭ·¡½º ¹®¹ý

  public class CGI

  5.1.2.  Ŭ·¡½º ¼³¸í

  CGI Ŭ·¡½º´Â "CGI Á¤º¸" (À¥ ¼­¹ö°¡ Á¤ÇÑ È¯°æ º¯¼öµé°ú submit µ¿ÀÛÀÌ
  ¼±ÅõǾúÀ» ¶§ formÀ¸·ÎºÎÅÍ º¸³½ name/value)¸¦ °¡Áø´Ù.  ¸ðµç Á¤º¸´Â
  Properties Ŭ·¡½º °´Ã¼¿¡ ÀúÀåµÈ´Ù.  ÀÌ Å¬·¡½º´Â "Orbits.net" ÆÐÅ°Áö¿¡
  µé¾îÀÖ´Ù.

  5.1.3.  ¸â¹ö ¿ä¾à

  ______________________________________________________________________
          CGI()         //  »ý¼ºÀÚ.
          getNames()    //  À̸§µéÀÇ ¸®½ºÆ®¸¦ ¾ò´Â´Ù.
          getValue()    //  À̸§À» ¸í½ÃÇÔÀ¸·Î½á formÀÇ value¸¦ ¾ò´Â´Ù.
  ______________________________________________________________________

  5.1.4.  ÂüÁ¶

  CGI_Test.

  5.1.5.  CGI()

     ¸ñÀû
        »ç¿ë °¡´ÉÇÑ CGI Å×ÀÌŸ¸¦ °¡Áø °´Ã¼¸¦ »ý¼ºÇÑ´Ù.

     ¹®¹ý
        public CGI()

     ¼³¸í
        CGI °´Ã¼°¡ »ý¼º µÇ¾úÀ» ¶§, ¸ðµç »ç¿ë °¡´ÉÇÑ CGIÁ¤º¸°¡ ±× °´Ã¼¿¡
        ´ëÇØ ·ÎÄÃÀÎ ÀúÀå¼Ò·Î º¸³»Áø´Ù.
  5.1.6.  getNames()

     ¸ñÀû
        ÇØ´çÇÏ´Â value¸¦ °®µµ·Ï Á¤ÀÇµÈ nameµéÀ» º¸ÀδÙ.

     ¹®¹ý
        public Enumeration getKeys ()

     ¼³¸í
        ÇØ´çÇÏ´Â value°¡ Á¤ÀÇµÈ nameÀÇ Àüü ¸®½ºÆ®¸¦ Á¦°øÇÑ´Ù.

     ¸®ÅÏ
        Á¤ÀÇµÈ ¸ðµç À̸§ÀÇ Enumeration

  5.1.7.  getValue()

     ¸ñÀû
        nameÀÌ ¸í½ÃµÈ value¸¦ ÃëÇÑ´Ù.

     ¹®¹ý
        public String getValue ( String name )

     ¼³¸í
        HTML formÀ¸·ÎºÎÅÍ º¸³»Áø name°ú value»çÀÌ¿¡ ´ëÀÀÇÏ´Â °ÍÀ»
        ¸®ÅÏÇÔ.

     ÆĶó¸ÞÅÍ

        name
           value¸¦ ¼±ÅÃÇÏ´Â Å°

     ¸®ÅÏ
        value¸¦ ´ã°í ÀÖ´Â String

  5.2.  CGI_Test

  ÀÌ Å¬·¡½º¿¡´Â CGIŬ·¡½º¸¦ ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö¿¡ °üÇÑ ¿¹Á¦¿Í Java CGI
  ÆÐÅ°Áö°¡ Á¤È®ÇÏ°Ô µ¿ÀÛÇÏ´ÂÁö È®ÀÎÇϴµ¥ »ç¿ëµÇ´Â Å×½ºÆ® ÇÁ·Î±×·¥ÀÌ
  µé¾î ÀÖ´Ù.

  5.2.1.  ¸â¹ö¿ä¾à

  ______________________________________________________________________
          main()      //  ÇÁ·Î±×·¥ main().
  ______________________________________________________________________

  5.2.2.  ÂüÁ¶

  CGI.

  5.2.3.  main()

     ¸ñÀû
        main() ¸Þ¼Òµå¸¦ Á¦°øÇÑ´Ù.

     ¹®¹ý
        public static void main( String argv[] )

     ¼³¸í
        »ç¿ë °¡´ÉÇÑ name/value ½ÖÀÇ ¸®½ºÆ®¿Í ÇöÀç °ªÀ» ¸®ÅÏÇÏ´Â CGI
        ÇÁ·Î±×·¥¿¡ ´ëÇÑ ÁøÀÔÁ¡(entry point)ÀÌ´Ù.

     ÆĶó¸ÞÅÍ

        argv[]
           java.cgi ½ºÅ©¸³Æ®¿¡ ÀÇÇØ ÇÁ·Î±×·¥¿¡ Àü´ÞµÇ´Â ÀÎÀÚµé.  ÇöÀç
           »ç¿ë ¾ÈÇÔ

  5.3.  Email

  5.3.1.  Ŭ·¡½º ¹®¹ý

  public class Email extends Text

  5.3.2.  Ŭ·¡½º ¹®¹ý

  ¸Þ½ÃÁö´Â TextŬ·¡½ºÀÇ add* () ¸Þ¼Òµå¿Í ÀÌ Å¬·¡½º¿¡ ÀÇÇØ Ãß°¡µÈ e-mail
  °ü·Ã(e-mail-specific) ¸Þ¼Òµå·Î ¸¸µé¾îÁø´Ù. ´Ù ¸¶Ä¡¸é, ¸Þ½ÃÁö´Â
  ¸ñÀûÁö·Î º¸³»Áø´Ù.  ÀÌ Å¬·¡½º´Â "Orbits.net"ÆÐÅ°Áö¿¡ µé¾îÀÖ´Ù.

  5.3.3.  ¸â¹ö ¿ä¾à

  ______________________________________________________________________
          Email()      //  »ý¼ºÀÚ.
          send()       //  ÀüÀÚ¸ÞÀÏ ¸Þ½ÃÁö¸¦ º¸³½´Ù.
          sendTo()     //  ¸Þ½ÃÁö¿¡ ¸ñÀûÁö¸¦ Ãß°¡ÇÑ´Ù.
          subject()    //  ¸ÞÁöÁö¿¡ ÁÖÁ¦(Subject:)¸¦ Á¤ÇÑ´Ù.
  ______________________________________________________________________

  5.3.4.  Âü°í

  Email_Test, Text.

  5.3.5.  Email()

     ¸ñÀû
        ÀüÀÚ¸ÞÀÏ ¸Þ½ÃÁö¸¦ ´ãÀº °³Ã¼¸¦ »ý¼ºÇÑ´Ù.

     ¹®¹ý
        public Email()

     ¼³¸í
        Email¸Þ¼Òµå·Î¼­ ¿Ï¼º(complete)µÉ ºó ¸Þ½ÃÁö¸¦ ¼Â¾÷ÇÑ´Ù.

     ÂüÁ¶
        Text.

  5.3.6.  send()

     ¸ñÀû
        ÀüÀÚ¸ÞÀÏ ¸Þ½Ã½Ã¸¦ º¸³½´Ù.

     ¹®¹ý
        public void send ()

     ¼³¸í
        ¸ÞÁö½Ã¸¦ Á¤ÇüÈ­(format)ÇÏ°í º¸³½´Ù.  ¸ñÀûÁö°¡ Á¤ÇØÁöÁö ¾Ê¾ÒÀ¸¸é,
        ¾Æ¹« Àϵµ ¹ß»ýÇÏÁö ¾Ê´Â´Ù.

  5.3.7.  sendTo()

     ¸ñÀû
        ¸Þ½ÃÁö¿¡ ¸ñÀûÁö¸¦ Ãß°¡ÇÑ´Ù.

     ¹®¹ý
        public String sendTo ( String address )

     ¼³¸í
        ÀÌ ¸Þ¼ÒµåÀÇ ¸ñÀûÁö ¸®½ºÆ®¿¡  ÁÖ¼Ò ¸¦ Ãß°¡ÇÑ´Ù.  ÀüÀÚ¸ÞÀÏ
        ¸Þ½ÃÁö°¡ °¡Áú ¼ö ÀÖ´Â ¸ñÀûÁöÀÇ ¼ö¿¡´Â Á¤ÇØÁø ÇÑ°è°¡ ¾ø´Ù.
        ¸®½ºÆ®ÀÇ Å©±â¸¦ ÃæºÐÈ÷ Å©°Ô ¸¸µç´Ù¸é, ¸ÞÀÏ Àü¼Û ¿¡ÀÌÀüÆ®(Mail
        Transport Agent) °¡ Çã¿ëÇÒ ¼ö ÀÖ´Â ÆĶó¸ÞÅÍ ¸®½ºÆ®ÀÇ »çÀÌÁ
        ÃÊ°úÇÒ ¼ö ÀÖÀ¸¸ç ±×·¸Áö ¾Ê´Ù¸é ¸Þ¸ð¸®¸¦ ´Ù ½á¹ö¸± °ÍÀÌ´Ù.

     ÆĶó¸ÞÅÍ/

        address
           ¸Þ½ÃÁö¸¦ º¸³¾ ¸ñÀûÁö.

  5.3.8.  subject()

     ¸ñÀû
        ¸Þ½ÃÁöÀÇ ÁÖÁ¦¸¦ Á¤ÇÑ´Ù.

     ¹®¹ý
        public void subject ( String subject )

     ¼³¸í
        ÀüÀÚ¸ÞÀÏÀÇ Subject: ÁÙÀÇ ÅؽºÆ®¸¦ Á¤ÇÑ´Ù. ¸¸¾à Çѹø ÀÌ»ó
        È£ÃâµÇ¸é, ¸Ç ¸¶Áö¸·¿¡ Á¤ÇÑ subject°¡ »ç¿ëµÈ´Ù.

     ÆĶó¸ÞÅÍ

        subject
           ¸Þ½ÃÁöÀÇ  Subject: ÁÙÀÇ ÅؽºÆ®

  5.4.  Email_Test

  ÀÌ Å¬·¡½º´Â Email Ŭ·¡½º¸¦ ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö¿¡ °üÇÑ ¿¹Á¦¿Í Java CGI
  ÆÐÅ°Áö°¡ Á¤È®ÇÏ°Ô µ¿ÀÛÇÏ´ÂÁö È®ÀÎÇϴµ¥ »ç¿ëµÇ´Â Å×½ºÆ® ÇÁ·Î±×·¥
  ¿¹Á¦°¡ µé¾îÀÖ´Ù.

  5.4.1.  ¸â¹ö ¿ä¾à

  ______________________________________________________________________
          main()      //  ÇÁ·Î±×·¥ main().
  ______________________________________________________________________

  5.4.2.  ÂüÁ¶

  Email.

  5.4.3.  main()

     ¸ñÀû
        main() ¸Þ¼Òµå¸¦ Á¦°øÇÑ´Ù.

     ¹®¹ý
        public static void main( String argv[] )

     ¼³¸í
        »ç¿ë °¡´ÉÇÑ name/value ½Ö°ú ÇöÀç ±× ½ÖÀÇ ¸®½ºÆ®¸¦ ¸®ÅÏÇÏ´Â CGI
        ÇÁ·Î±×·¥¿¡ ´ëÇÑ ÁøÀÔÁ¡(entry point)ÀÌ´Ù.  Email º¯¼ö¿¡ ¸í½ÃµÈ
        ÁÖ¼Ò¿¡µµ ÀÌ ¸®½ºÆ®¸¦ º¸³½´Ù.

     ÆĶó¸ÞÅÍ

        argv[]
           java.cgi ½ºÅ©¸³Æ®¿¡ ÀÇÇØ ÇÁ·Î±×·¥¿¡ Àü´ÞµÇ´Â ÀÎÀÚµé.  ÇöÀç
           »ç¿ë ¾ÈÇÔ.

  5.5.  HTML

  5.5.1.  Ŭ·¡½º ¹®¹ý

  public class HTML extends Text

  5.5.2.  Ŭ·¡½º ¼³¸í

  ¸Þ½ÃÁö´Â TextŬ·¡½ºÀÇ add* () ¸Þ¼Òµå¿Í ÀÌ Å¬·¡½º¿¡ ÀÇÇØ Ãß°¡µÈ
  HTML°ü·Ã(HTML-specific) ¸Þ¼Òµå·Î ¸¸µé¾îÁø´Ù. ¿Ï¼ºµÇ¸é, ¸Þ½ÃÁö´Â
  ¸ñÀûÁö·Î º¸³»Áø´Ù.  ÇöÀç, ¸®½ºÆ®¸¦ ¸¸µå´Â ¸Þ¼ÒµåµéÀÌ Á¤È®ÇÑ ¼ø¼­·Î
  »ç¿ëµÇ¾ú´ÂÁö È®½ÅÇÒ ¿¡·¯ üŷÀ» ÇÏÁö ¾Ê¾Æ¼­, ÇÁ·Î±×·¡¸Ó°¡ HTML ¹®¹ýÀ»
  ¾î±âÁö ¾Êµµ·Ï ÁÖÀÇÇØ¾ß ÇÑ´Ù.  ÀÌ Å¬·¡½º´Â "Orbits.net"ÆÐÅ°Áö¿¡
  µé¾îÀÖ´Ù.

  5.5.3.  ¸â¹ö ¿ä¾à

  ______________________________________________________________________
          HTML()                  //  »ý¼ºÀÚ.
          author()                //  ¹®¼­ ÀúÀÚÀÇ À̸§À» Á¤ÇÑ´Ù.
          definitionList()        //  Á¤ÀÇ ¸®½ºÆ®¸¦ ½ÃÀÛÇÑ´Ù.
          definitionListTerm()    //  Á¤ÀÇ ¸®½ºÆ®¿¡ ¿ë¾î(term)¸¦ Ãß°¡ÇÑ´Ù.
          endList()               //  ¸®½ºÆ®¸¦ ³¡¸Î´Â´Ù.
          listItem()              //  ¸®½ºÆ®¿¡ ¿£Æ®¸®¸¦ Ãß°¡ÇÑ´Ù.
          send()                  //  HTML¸Þ½ÃÁö¸¦ º¸³½´Ù.
          title()                 //  ¹®¼­ Á¦¸ñ¿ë ÅؽºÅ©¸¦ Á¤ÇÑ´Ù.
  ______________________________________________________________________

  5.5.4.  ÂüÁ¶

  HTML_Test, Text.

  5.5.5.  HTML()

     ¸ñÀû
        HTML¸Þ½ÃÁö¸¦ ´ãÀ» °´Ã¼¸¦ »ý¼ºÇÑ´Ù.

     ¹®¹ý
        public HTML()

     ¼³¸í
        HTML ¸Þ¼Òµå¿¡ ÀÇÇؼ­ ¿Ï¼ºµÉ ºó ¸Þ½ÃÁö¸¦ ¸¸µç´Ù.

     ÂüÁ¶
        Text.

  5.5.6.  author()

     ¸ñÀû
        ¹®Àú ÀúÀÚÀÇ À̸§À» Á¤ÇÑ´Ù.

     Syntax
        public void author ( String author )

     ¼³¸í
        ¹®¼­ÀÇ ÀúÀÚ¸¦ author·Î Á¤ÇÑ´Ù.

     ÆĶó¸ÞÅÍ/

        author
           ¸Þ½ÃÁöÀÇ ÀúÀÚ·Î »ç¿ëµÉ ÅؽºÆ®.

     ÂüÁ¶
        title().

  5.5.7.  definitionList()

     ¸ñÀû
        Á¤ÀÇ ¸®½ºÆ®¸¦ ½ÃÀÛÇÑ´Ù.

     ¹®¹ý
        public void definitionList ()

     ¼³¸í
        Á¤ÀÇ ¸®½ºÆ®¸¦ ½ÃÀÛÇÑ´Ù.  Á¤ÀÇ ¸®½ºÆ®´Â ¸®½ºÆ® ¾ÈÀÇ °¢°¢ÀÇ
        ¿£Æ®¸®°¡ ±× ¿ë¾î(term)ÀÇ Á¤ÀÇ ÅؽºÆ®(text)  ´ÙÀ½¿¡ ³ª¿À´Â Ç׸ñÀÎ
        ¸®½ºÆ®ÀÌ´Ù. Á¤ÀÇ ¸®½ºÆ®ÀÇ ½ÃÀÛÀº (ÃÖ¼ÒÇÑ) ÇϳªÀÇ ¿ë¾î/ÅؽºÆ®
        ½ÖÀ» »ý¼ºÇÏ°í endList() ¸Þ¼Òµå°¡ Çѹø È£ÃâµÈ ÀÌÈÄ À̾î¾ß ÇÑ´Ù.
        ÇöÀç ¸®½ºÆ®µéÀº ³×½ºÆ®(nest)µÉ ¼ö ¾øÀ½À» ÁÖÀÇÇ϶ó.

     ÂüÁ¶
        definitionListTerm(), endList(), listItem().

  5.5.8.  definitionListTerm()

     ¸ñÀû
        Á¤ÀÇ ¸®½ºÆ®¿¡ ÇϳªÀÇ ¿ë¾î¸¦ Ãß°¡ÇÑ´Ù.

     ¹®¹ý
        public void definitionListTerm ()

     ¼³¸í
        Á¤ÀÇ ¸®½ºÆ®¿¡ ÇϳªÀÇ ¿ë¾î¸¦ Ãß°¡ÇÑ´Ù.  Çö ¸®½ºÆ® ¿£Æ®¸®ÀÇ ¿ë¾î
        ºÎºÐÀÇ ÅؽºÆ®´Â ÀÌ ¸Þ¼Òµå°¡ È£ÃâµÇ°í ÇØ´çµÇ´Â listItem¸Þ¼Òµå°¡
        È£ÃâµÇ±â Àü¿¡ ¸Þ½ÃÁö¿¡ µ¡ºÙ¿©Á®¾ß ÇÑ´Ù.

     ÂüÁ¶
        definitionList(), listItem().

  5.5.9.  endList()

     ¸ñÀû
        ¸®½ºÆ®¸¦ ³¡¸Î´Â´Ù.

     ¹®¹ý
        public void endList ()

     ¼³¸í
        ¸®½ºÆ®¸¦ ³¡¸Î´Â´Ù.  ÀÌ ¸Þ¼Òµå´Â ÇÑ ¸®½ºÆ®¸¦ ³¡³½´Ù.  ÇöÀç
        ¸®½ºÆ®µéÀº ³×½ºÆ®µÉ ¼ö ¾øÀ½À» ÁÖ¸ñÇ϶ó.

     ÂüÁ¶
        definitionList().

  5.5.10.  listItem()

     ¸ñÀû
        ¸®½ºÆ®¿¡ ¿£Æ®¸® Çϳª¸¦ Ãß°¡ÇÑ´Ù.

     ¹®¹ý
        public void listItem ()

        public void listItem ( String item )

        public boolean listItem ( String term, String item )

     ¼³¸í
        ¸®½ºÆ®¿¡ ¿£Æ®¸® Çϳª¸¦ Ãß°¡ÇÑ´Ù.  ¸¸¾à ù¹ø° Æû(form)ÀÌ
        »ç¿ëµÈ´Ù¸é, Çö ¸®½ºÆ® ¾ÆÀÌÅÛÀÇ ÅؽºÆ®´Â ÀÌ ¸Þ¼Òµå°¡ È£ÃâµÈ
        ´ÙÀ½¿¡ ±×¸®°í ´Ù¸¥ ¸®½ºÆ® ¸Þ¼Òµå°¡ È£ÃâµÇ±â Àü¿¡ ¸Þ½ÃÁö¿¡
        ºÙ¿©Á®¾ß ÇÑ´Ù. µÎ¹ø°¿Í ¼¼¹ø° Æû¿¡¼­´Â, item ÅؽºÆ®´Â ÀÌ
        ¸Þ½ÃÁö¿¡ µ¡ºÙ¿©Áö´Â ´ë½Å¿¡(ȤÀº Ãß°¡·Î) ¸Þ¼ÒµåÀÇ ÆĶó¸ÞÅͷνá
        ¸í½ÃµÈ´Ù.¼¼¹ø°´Â Á¤ÀÇ ¸®½ºÆ®¿¡ °ü·ÃµÇ°í(specific), ¿ë¾î¿Í
        ¸®½ºÆ® ¿£Æ®¸®ÀÇ Á¤ÀǸ¦ Á¦°øÇÑ´Ù.

     ÆĶó¸ÞÅÍ

        item
           ¸®½ºÆ® ¿£Æ®¸®ÀÇ ÅؽºÆ®.

        term
           Á¤ÀÇ ¸®½ºÆ® ¿£Æ®¸®ÀÇ ¿ë¾î ºÎºÐÀÇ ÅؽºÆ®.

     ÂüÁ¶
        definitionList(), definitionListTerm(), endList().

  5.5.11.  send()

     ¸ñÀû
        HTML¸Þ½ÃÁö¸¦ º¸³½´Ù.

     ¹®¹ý
        public void send ()

     ¼³¸í
        HTML ¸Þ½ÃÁö¸¦ º¸³½´Ù.

  5.5.12.  title()

     ¸ñÀû
        ¹®¼­ Á¦¸ñÀÇ ÅؽºÆ®¸¦ Á¤ÇÑ´Ù.

     ¹®¹ý
        public void title ( String title )

     ¼³¸í
        ¹®¼­ Á¦¸ñÀÇ ÅؽºÆ®¸¦ Á¤ÇÑ´Ù.

     ÆĶó¸ÞÅÍ

        title
           ¸Þ½ÃÁö Á¦¸ñÀÇ ÅؽºÆ®.

     ÂüÁ¶
        author().

  5.6.  HTML_Test

  ÀÌ Å¬·¡½º¿¡´Â HTMLŬ·¡½º¸¦ ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö¿¡ °üÇÑ ¿¹Á¦¿Í Java CGI
  ÆÐÅ°Áö°¡ Á¤È®ÇÏ°Ô µ¿ÀÛÇÏ´ÂÁö¸¦ È®ÀÎÇϴµ¥ »ç¿ëµÇ´Â Å×½ºÆ® ÇÁ·Î±×·¥ÀÌ
  µé¾îÀÖ´Ù.

  5.6.1.  ¸â¹ö ¿ä¾à

  ______________________________________________________________________
          main()      //  ÇÁ·Î±×·¥ main().
  ______________________________________________________________________

  5.6.2.  ÂüÁ¶

  HTML.

  5.6.3.  main()

     ¸ñÀû
        main() ¸Þ¼Òµå¸¦ Á¦°øÇÑ´Ù.

     ¹®¹ý
        public static void main( String argv[] )

     ¼³¸í
        HTML¹®¼­¿¡¼­ Á¤ÀÇ ¸®½ºÆ® ¿ø¼Ò¿¡¼­ °¢°¢ÀÇ name/valueÀÇ ½ÖÀ»
        º¸ÀÌ¸ç »ç¿ë °¡´ÉÇÑ name/valueÀÇ ½ÖÀÇ ¸®½ºÆ®¸¦ ¸®ÅÏÇÏ´Â
        CGIÇÁ·Î±×·¥¿¡ ´ëÇÑ ÁøÀÔÁ¡ÀÌ´Ù.

     ÆĶó¸ÞÅÍ

        argv[]
           java.cgi½ºÅ©¸³Æ®¿¡ ÀÇÇØ ÇÁ·Î±×·¥¿¡ Àü´ÞµÇ´Â ÀÎÀÚµé.  ÇöÀç
           »ç¿ë ¾ÈÇÔ.

  5.7.  Text

  5.7.1.  Ŭ·¡½º ¹®¹ý

  public abstract class Text

  5.7.2.  Ŭ·¡½º ¼³¸í

  ÀÌ Å¬·¡½º´Â Email °ú HTML Ŭ·¡½ºÀÇ ¼öÆÛŬ·¡½ºÀÌ´Ù.  ¸Þ½ÃÁö´Â ÀÌ
  Ŭ·¡½º¾ÈÀÇ ¸Þ¼Òµå¿¡ ÀÇÇØ ¸¸µé¾îÁö°í ¼­ºêŬ·¡½ºÀÇ ¸Þ¼Òµå·Î½á
  ¿Ï¼ºµÇ¸ç(completed) Çü½ÄÈ­(formatted)µÈ´Ù.  ÀÌ Å¬·¡½º´Â
  "Orbits.text"ÆÐÅ°Áö ¾È¿¡ µé¾îÀÖ´Ù.

  5.7.3.  ¸â¹ö ¿ä¾à

  ______________________________________________________________________
          Text()            //  »ý¼ºÀÚ.
          add()             //  ÀÌ °´Ã¼¿¡ ÅؽºÆ®¸¦ Ãß°¡ÇÑ´Ù.
          addLineBreak()    //  °èÇà Ãß°¡.
          addParagraph()    //  ´Ü¶ô°èÇà Ãß°¡.
  ______________________________________________________________________

  5.7.4.  Âü°í

  Email, HTML.

  5.7.5.  add()

     ¸ñÀû
        ¾ÆÀÌÅÛ¿¡ ÅؽºÆ®¸¦ Ãß°¡ÇÑ´Ù.

     ¹®¹ý
        public void add ( char addition )

        public void add ( String addition )

        public void add ( StringBuffer addition )

     ¼³¸í
        ÅؽºÆ® ¾ÆÀÌÅÛÀÇ ³»¿ë¿¡ addition¸¦ Ãß°¡ÇÑ´Ù.

     ÆĶó¸ÞÅÍ

        addition
           ÅؽºÆ® ¾ÆÀÌÅÛ¿¡ Ãß°¡µÉ ÅؽºÆ®.

     ÂüÁ¶
        addLineBreak(), addParagraph().

  5.7.6.  addLineBreak()

     ¸ñÀû
        Çö ½ÃÁ¡¿¡¼­ ÅؽºÆ®¿¡ °èÇàÀ» ÇÑ´Ù.

     ¹®¹ý
        public void addLineBreak ()

     ¼³¸í
        Çö ½ÃÁ¡¿¡¼­ ÅؽºÆ®¿¡ °èÇàÀ» ÇÑ´Ù.

     ÂüÁ¶
        add(), addParagraph().

  5.7.7.  addParagraph()

     ¸ñÀû
        »õ·Î¿î ´Ü¶ôÀ» ½ÃÀÛÇÑ´Ù.

     ¹®¹ý
        public void add ()

     ¼³¸í
        ÅؽºÆ® È帧ÀÇ Çö ½ÃÁ¡¿¡¼­ »õ ´Ü¶ôÀ» ½ÃÀÛÇÑ´Ù.

     ÂüÁ¶
        add(), addLineBreak().

  6.  ÇâÈÄ °èȹ

  o  Email Ŭ·¡½º¿¡ Ãß°¡:

     Email( int capacity )
        ¸Þ½ÃÁö°¡ ÇÒ´çµÇ±â À§Çؼ­ ¾ó¸¶³ª ¸¹Àº °ø°£ÀÌ ÇÊ¿äÇÑÁö ¾Ë°í ÀÖÀ»
        ¶§ »ç¿ë.

     sendTo( String [] address )
        ÀüÀÚ¸ÞÀÏ ¸Þ½ÃÁö¿¡ ÁÖ(primary) ¸ñÀûÁö ¸®½ºÆ® Ãß°¡.

     sendCc( String address )
        ÀüÀÚ¸ÞÀÏ ¸Þ½ÃÁö¿¡ Ä«º»Ä«ÇÇ(º¹»çº») ¸ñÀûÁö Ãß°¡.

     sendCc( String [] address )
        ÀüÀÚ¸ÞÀÏ ¸Þ½ÃÁö¿¡ Ä«º»Ä«ÇÇ(º¹»çº») ¸ñÀûÁö Ãß°¡.

     sendBcc( String address )
        ÀüÀÚ¸ÞÀÏ ¸Þ½ÃÁö¿¡  ºí¶óÀεå Ä«º» Ä«ÇÇ(ÀÍ¸í º¹»çº») ¸ñÀûÁö Ãß°¡.

     sendBcc( String [] address )
        ÀüÀÚ¸ÞÀÏ ¸Þ½ÃÁö¿¡ ºí¶óÀεå Ä«º» Ä«ÇÇ(ÀÍ¸í º¹»çº») ¸ñÀûÁö Ãß°¡.

  o  HTML Ŭ·¡½º¿¡ Ãß°¡:

     HTML( int capacity )
        ¸Þ½ÃÁö°¡ ÇÒ´çµÇ±â À§Çؼ­ ¾ó¸¶³ª ¸¹Àº °ø°£ÀÌ ÇÊ¿äÇÑÁö ¾Ë ¶§ »ç¿ë.

     public void unorderedList()
        ¹«Á¤·Ä ¸®½ºÆ®¸¦ ½ÃÀÛ.

     public void orderedList()
        ¹«Á¤·Ä ¸®¸£Æ®¸¦ ½ÃÀÛ.

     public void directoryList()
        ¸ñ·Ï ¸®½ºÆ®¸¦ ½ÃÀÛ.

     public void menuList()
        ¸Þ´º ¸®½ºÆ®¸¦ ½ÃÀÛ.

     void anchor( String anchorName )
        anchor¸¦ ¸í½Ã.

     void link( String url, String text )
        ¸µÅ©¸¦ ¸í½Ã.

     void applet( String url, String altText )
        ¾ÖÇø´ ¸µÅ©¸¦ ¸í½Ã.

  o  HTML¸®½ºÆ®°¡ ³×½ºÆ® µÇ°Ô ÇÑ´Ù.

  o  HTML ¸®½ºÆ® Æ÷¸ËÆÃ(formatting) ÄÚµåÀÇ ¿Ã¹Ù¸¥ Á¤·ÄÀ» ¼öÇàÇÒ ¿¡·¯
     üŷ Äڵ带 Ãß°¡ÇÑ´Ù.

  o  Makefile¿¡¼­ ȯ°æ µ¥ÀÌŸ ÆÄÀÏÀÇ À§Ä¡¸¦ Á¶Á¤ÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù.

  o  µ¥ÀÌŸ Àü¼ÛÀÎ GET¸Þ¼Òµå¸¦ »ç¿ëÇÒ ¶§ ¸®½ºÆ®¿¡¼­ ³ªÅ¸³ª´Â ºó
     name/value ½ÖÀ» ¾ø¾Ø´Ù.

  o  °è¼ÓÇؼ­ º¯¼ö À̸§À» Á¦°øÇÒ java.util.Enumeration ÀÎÅÍÆäÀ̽ºÀÇ
     CGI·ÎÀÇ ±¸ÇöÀ» »ý°¢Áß.

  o  ÀÌ ÆÐÅ°Áö¿¡ ÀÖ´Â ¸ðµç ¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â, Test Ŭ·¡½º¸¦ Ãß°¡ÇÑ´Ù.

  o  µð¹ö±ë ¸ñÀûÀ¸·Î Á¡ÁøÀûÀÎ Å×½ºÆ®¸¦ Çϱâ À§ÇØ CGI_Test, Email_Test ¿Í
     HTML_Test ¼­·Î°¡ ¾î¶»°Ô ºôµå µÇ´ÂÁö  ¹®¼­È­ÇÑ´Ù.

  o  ¾î¶»°Ô Test°¡ ÀÌ ÆÐÅ°Áö¿¡¼­ °¡´ÉÇÑ ¸ðµç ±â´ÉÀ» ÀÌ¿ëÇÏ´ÂÁö
     ¹®¼­È­ÇÑ´Ù.

  7.  º¯È­

  7.1.  0.4¿¡¼­ 0.5°£ÀÇ º¯È­

  o  ¸¶Áö¸· ÆÇÀ» ¹Ý¿µÇÏ´Â º¯È­µÈ ¹®¼­È­¿Í ÁÖ¼®

  7.2.  0.3¿¡¼­ 0.4°£ÀÇ º¯È­

  o  ÃÖ¼ÒÇÑÀÇ ±â´ÉÀ» Á¦°øÇÏ´Â HTML Ŭ·¡½ºÀÇ °ñÀÚ ¹èÆ÷.

  o  HTML_Test Ŭ·¡½º¿Í javahtmltest.html-dist ÀÛ¼º.

  o  Á¤ÀÇ ¸®½ºÆ®¸¦ ´Ù·ç±â À§ÇÑ HTML ¸Þ¼Òµå¸¦ Ãß°¡.

  7.3.  0.2¿¡¼­ 0.3°£ÀÇ º¯È­

  o  Text ¿Í Email Ŭ·¡½º¸¦ Ãß°¡. HTML Ŭ·¡½ºµµ Ãß°¡µÇ¾úÀ¸³ª, ÀÌ
     ½Ã±â¿¡´Â ½ÃÀÛ ´Ü°è Á¤µµ.

  o  ÆÐÅ°Áö¿¡ ´Ù¾çÇÑ Å¬·¡½º¸¦ ³ÖÀ½.  ÁÖµÈ Å¬·¡½º´Â Orbits.net.*¿¡ µé¾î
     ÀÖÀ¸¸ç, Áö¿ø Ŭ·¡½º Text´Â Orbits.text.Text¾È¿¡ ÀÖÀ½.

  o  CGItest °¡ CGI_Test ·Î ¹Ù²ñ.

  o  Email_Test Ŭ·¡½º Ãß°¡.

  7.4.  0.1¿¡¼­ 0.2°£ÀÇ º¯È­

  o  ȯ°æº¯¼ö¸¦ ÀÚ¹Ù ÀÎÅÍÇÁ¸®ÅÍÀÇ Ä¿¸àµå ¶óÀÎ ¾È¿¡ ³Ö´Â ´ë½Å¿¡ ÀÓ½Ã
     ÆÄÀÏ¿¡ ³õÀÓ. CGI Ŭ·¡½º¿Í java.cgi°¡ ¼öÁ¤µÇ¾úÀ½.

  o  Javacgitest.html ¹®¼­°¡ ¹èÆ÷ÆÇ¿¡ Æ÷ÇÔµÊ.

  o  ÀνºÅç °úÁ¤ÀÇ make¿¡ ÀÇÇØ ¼öÁ¤µÈ ÅؽºÆ® ÆÄÀÏ¿¡ -dist·Î ³¡³ª´Â
     À̸§À» ºÙÀÓ.