· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Java-CGI-HOWTO

<!doctype linuxdoc system>
<article>
<title>Java CGI HOWTO
<author>by David H. Silber
<tt><htmlurl url="mailto:javacgi-document@orbits.com" name="javacgi-document@orbits.com"></tt>
<date>1998³â 12¿ù 1ÀÏ ¹öÀü 0.5 
<trans>¿Å±äÀÌ:<htmlurl url="mailto:jhpark@osnn.hanyang.ac.kr" name="¹ÚÁÖÈñ(jhpark@osnn.hanyang.ac.kr)">

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

<toc>

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

<sect1>º» ¹®¼­¿¡ °üÇÏ¿©
<p>
º» ¹®¼­ÀÇ ÃÖ±Ù ÆÇÀº <htmlurl url="http://www.orbits.com/software/Java_CGI.html"
name="http://www.orbits.com/software/Java_CGI.html">¿¡¼­ ÀÐÀ» ¼ö ÀÖ´Ù. 
<sect1>ÆÐŰÁö
<p>
º» ¹®¼­¿¡¼­ ¼³¸íÇÏ´Â ÆÐŰÁö´Â ´ÙÀ½ÀÇ anonymous FTP¿¡¼­ ¿¢¼¼½ºÇÒ ¼ö ÀÖ´Ù.
<htmlurl url="ftp://ftp.orbits.com/pub/software/java_cgi-0.5.tgz"
name="ftp://ftp.orbits.com/pub/software/java_cgi-0.5.tgz">.
ÆÐŰÁö¿¡´Â º» ¹®¼­ÀÇ SGML ¼Ò½ºµµ Æ÷ÇԵǾî ÀÖ´Ù.
º» ÆÐŰÁö´Â GNU Library General Public License Á¶Ç׿¡ ÀǰÅÇØ ¹èÆ÷µÈ´Ù. º» 
¹®¼­´Â ¸®´ª½º HOWTO ÆÇ±Ç(copyright) ÁÖÀÇ»çÇ׿¡ ÀǰÅÇØ¼­ ¹èÆ÷µÈ´Ù. 

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

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

<sect1>¸ÞÀϸµ ¸®½ºÆ®
<label id="mailing-list">
<p>
»ç¶÷µéÀÌ º» ¼ÒÇÁÆ®¿þ¾î¸¦ ÀνºÅçÇÏ°í »ç¿ëÇϴµ¥ À־ÀÇ »óÈ£ÀÇ ¹®Á¦Á¡µéÀ» 
¼­·Î µ½°íÀÚ ÇÊÀÚ°¡ majordomo (¿ªÀÚÁÖ:¸ÞÀϸµ ¸®½ºÆ® ¸Þ´ÏÀúÀÇ Çϳª) ¸®½ºÆ®¸¦ ¸¸µé¾ú´Ù.
<em>subscribe</em>¶ó´Â ¸»À» Àû¾î¼­
<tt><htmlurl url="mailto:javacgi-request@orbits.com"
name="javacgi-request@orbits.com"></tt>·Î ¸Þ½ÃÁö¸¦ º¸³»±â ¹Ù¶õ´Ù.

<sect>ÀÚ¹Ù CGIÇÁ·Î±×·¥À» ½ÇÇàÇϱâ À§ÇØ ¼­¹ö ¼ÂÆÃÇϱâ (¼³¸í ÷ºÎ)
<label id="install-long">
<p>
ÀÌ ºÎºÐÀº ¼³Ä¡ ÀÛ¾÷ÀÌ ¾î¶² ¿µÇâÀ» ³¢Ä¡´ÂÁö ¿©·¯ºÐ ÀÚ½ÅÀÌ ¾Ë°Ô 
Çϱâ À§ÇØ Ç³ºÎÇÑ ¼³¸í°ú ÇÔ²² ÇÊÀÚÀÇ <em>Java CGI</em> ÆÐŰÁö¸¦ ÀνºÅç ÇÒ °ÍÀÌ´Ù.
¸¸¾à º» ÇÁ·Î±×·¥À» ÀνºÅ縸 ÇÏ°í ¿ÖÀÎÁö ±×¸®°í ¿Ö ±×·¡¾ß¸¸ ÇÏ´ÂÁö¿¡ ´ëÇÑ °ÍÀº ½Å°æ ¾²
Áö ¾Ê´Â´Ù¸é, ´ÙÀ½À¸·Î ³Ñ¾î°¡¶ó.
<ref id="install-short"
name="ÀÚ¹Ù CGIÇÁ·Î±×·¥À» ½ÇÇàÇϱâ À§ÇØ ¼­¹ö ¼ÂÆÃÇϱâ (¿ä¾à)">.

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

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

<sect1>¼Ò½º ¾ÐÃà Ç®±â
<p>
º» ÆÐŰÁö¸¦ Ç®¾î µÑ Àû´çÇÑ µð·ºÅ丮¸¦ ã´Â´Ù.
 (´Ù¸¥ ÆÐŰÁö¸¦ Ç®¾î µÐ ÀÏÁ¤ÇÑ °÷ÀÌ ¾ø´Ù¸é, 
<tt>/usr/local/src</tt>¸¦ »ç¿ëÇ϶ó.)  
´ÙÀ½ÀÇ ¸í·ÉÀ¸·Î ¹èÆ÷ÆÇÀ» Ǭ´Ù.
<verb>
gzip -dc java_cgi-0.5.tgz | tar -xvf -
</verb>
<tt>java_cgi-0.5</tt>µð·ºÅ丮°¡ »ý¼ºµÉ °ÍÀÌ´Ù..
°Å±â¿¡ ÀÌ ´ÙÀ½ ´Ü°èºÎÅÍ ÂüÁ¶ ÆÄÀÏÀÌ ÀÖÀ» °ÍÀÌ´Ù.
(¹öÀüÀÌ ¹Ù²î¾ú´Ù¸é, Áö±ÝºÎÅÍ´Â ±× ¹èÆ÷ÆÇÀÇ ¼³¸íÀ» Âü°íÇ϶ó)

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

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

<sect>Java CGI ÇÁ·Î±×·¥À» ½ÇÇà½Ã۱â À§ÇÏ¿© ¼­¹ö ¼¼ÆÃÇϱâ(¿ä¾àÇüÅÂ)
<label id="install-short">
<p>
<itemize>
<item>
<htmlurl url="ftp://ftp.orbits.com/pub/software/java_cgi-0.5.tgz"
name="ftp://ftp.orbits.com/pub/software/java_cgi-0.5.tgz">·ÎºÎÅÍ <em>Java  CGI</em>ÆÐ
ŰÁö¸¦ ¾ò´Â´Ù.
(¹öÀüÀÌ º¯ÇßÀ»Áöµµ ¸ð¸¥´Ù)
</item>
<item>
´ÙÀ½ ¸í·É¾î·Î ¹èÆ÷ÆÇÀ» Ǭ´Ù:
<verb>
gzip -dc java_cgi-0.5.tgz | tar -xvf -
</verb>
(¹öÀüÀÌ ¹Ù²î¾ú´Ù¸é, Áö±ÝºÎÅÍ´Â ±× ¹èÆ÷ÆÇÀÇ 
¼³¸íÀ» Âü°íÇ϶ó)
</item>
<item>
»õ·ÎÀÌ »ý¼ºµÈ<tt>java_cgi-0.5</tt> µð·ºÅ丮¿¡¼­ ½Ã½ºÅÛ¿¡ ¸Â°Ô<tt>Makefile</tt>À» ÆíÁýÇÑ´Ù.
</item>
<item>
root·Î½á <tt>make install</tt>À» ½ÇÇàÇÑ´Ù. ÀÌ ¸í·ÉÀÌ ÀÚ¹Ù ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇϰí, 
  ¿©·¯ºÐÀÇ ½Ã½ºÅÛ¿¡ °ü·ÃµÈ Á¤º¸µéÀ» Àû¿ë(apply)½ÃŰ°í ´Ù¾çÇÑ ÆÄÀϵéÀ» ÀνºÅç
  ÇÑ´Ù. ¸¸¾à   HTML·ÎµÈ º»  ¹®¼­¿Í  HTMLÅ×½ºÆ® ¹®¼­¸¦   ¿øÇÑ´Ù¸é, ´ë½Å  <tt>make 
all</tt>À» ½ÇÇàÇÑ´Ù.  
</item>
<item>
ÀÌÁ¦ Áغñ°¡ µÇ¾ú´Ù.
</item>
</itemize>

<sect>Java CGI ÇÁ·Î±×·¥ ½ÇÇàÇϱâ
<p>

<sect1>CGI ¸ðµ¨ »ó¿¡¼­ ÀÚ¹Ù ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀ» ¸·´Â Àå¾Ö¹°
<p>
À¥ ¼­¹ö¿¡¼­ ÀÚ¹Ù ÇÁ·Î±×·¥À» ½ÇÇà½Ã۴µ¥ À־ µÎ °¡Áö ¹®Á¦Á¡ÀÌ ÀÖ´Ù:
<sect2>ÀÚ¹Ù ÇÁ·Î±×·¥À» º¸Åë ½ÇÇàÆÄÀÏó·³ ½ÇÇà½Ãų ¼ö ¾ø´Ù.
<p>
Ä¿¸àµå ¶óÀλ󿡼­ ÀÚ¹Ù ·±Å¸ÀÓ ÀÎÅÍÇÁ¸®Å͸¦ ½ÇÇàÇϰí (ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÉ ¼ö 
ÀÖµµ·Ï) ÃʱâÈ­ Ŭ·¡½º°¡ ÀÖ¾î¾ß ÇÑ´Ù. HTML ÇüÅ·δ Ŀ¸àµå ¶óÀÎÀ» À¥ ¼­¹ö¿¡
º¸³¾ ¼ö ¾ø´Ù.

<sect2>Àڹٴ ȯ°æ(º¯¼ö)¿¡ ´ëÇØ ÀϹÝÀûÀÎ ¾×¼¼½ºÇÒ ¼ö ¾ø´Ù.
<p>
ÀÚ¹Ù ÇÁ·Î±×·¥ÀÌ ÇÊ¿ä·Î ÇÏ´Â °³°³ÀÇ È¯°æº¯¼ö´Â Á¤È®ÀÌ ³Ñ°ÜÁ®¾ß(pass) ÇÑ´Ù. 
<bf>C</bf> ¿¡¼­ÀÇ 
<tt>getenv()</tt> ÇÔ¼ö °°Àº ¸Þ¼Òµå´Â ¾ø´Ù.   

<sect1>Java CGIÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¶§ÀÇ ¹®Á¦Á¡ ±Øº¹
<p>
À§ÀÇ Àå¾Ö¹°À» ó¸®Çϱâ À§ÇØ, ÀÚ¹Ù ÀÎÅÍÇÁ¸®ÅÍ¿¡°Ô ÇÊ¿äÇÑ Á¤º¸¸¦ Á¦°øÇÏ´Â
½© CGIÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿´´Ù.
<sect2> java.cgi ½ºÅ©¸³Æ®
<p>
ÀÌ ½© ½ºÅ©¸³Æ®´Â »ç¿ëÇϰíÀÚ ÇÏ´Â Java CGIÇÁ·Î±×·¥°ú HTTPµ¥¸ó »çÀÌÀÇ 
»óÈ£ÀÛ¿ë(interaction)À» °ü¸®ÇÑ´Ù. ÀÌ ½ºÅ©¸³Æ®´Â ½ÇÇàÇϰíÀÚ ÇÏ´Â ÇÁ·Î±×·¥ÀÇ À̸§À» ¼­¹ö°¡
Á¦°øÇÏ´Â µ¥ÀÌŸ·ÎºÎÅÍ »Ì¾Æ³»¸ç ÀÓÀÇÀÇ Àӽà ÆÄÀÏ ¾È¿¡ ȯ°æ µ¥ÀÌŸ(environment data) ¸ðµÎ¸¦ ¸ðÀº´Ù.
±×¸®°í³ª¼­  Ä¿¸àµå ¶óÀο¡ µ¡ºÙ¿©Áø ȯ°æ Á¤º¸ ÆÄÀÏÀÇ À̸§°ú ÇÁ·Î±×·¥ À̸§À»
 °¡Áö°í ÀÚ¹Ù ·±Å¸ÀÓ ÀÎÅÍÇÁ¸®Å͸¦ ½ÇÇà½ÃŲ´Ù.
 <tt>java.cgi</tt>½ºÅ©¸³Æ®´Â <ref id="make-programs" name="Áö¿ª °æ·Î¿¡ °üÇÑ ¹æÄ§À» Á¤Ç϶ó">
¿¡¼­ ±¸¼ºµÇ¾úÀ¸¸ç ÀνºÅçµÇ¾ú´Ù.
<sect2>HTML formÀ¸·Î ºÎÅÍ java.cgi È£ÃâÇϱâ
<p>
Java CGI ÇÁ·Î±×·¥À» »ç¿ëÇÏ´Â ÇÊÀÚÀÇ ÆûÀº ´ÙÀ½°ú °°ÀÌ form actionÀ» ¸í½ÃÇÑ´Ù:
<verb>
<form action="/cgi-bin/java.cgi/CGI_Test" method="POST">
</verb>
¿©±â¼­   <tt>/cgi-bin/</tt> Àº ¿©·¯ºÐÀÇ CGI ¹ÙÀ̳ʸ® µð·ºÅ丮À̸ç, <tt>java.cgi</tt>´Â À¥»ó¿¡¼­ Java
ÇÁ·Î±×·¥À» ½ÇÇà½ÃŰ°Ô ÇØÁÖ´Â ÀÚ¹Ù front-end À̸ç, <tt>CGI_Test</tt>´Â ½ÇÇà½Ãų ÀÚ¹Ù 
ÇÁ·Î±×·¥ À̸§ÀÇ ¿¹ÀÌ´Ù. 
<sect>Java CGIŬ·¡½º »ç¿ëÇϱâ
<p>
ÇöÀç ¼¼°³ÀÇ ¸ÞÀΠŬ·¡½º°¡ Á¦°øµÈ´Ù.
<ref id="cgi-class" name=CGI>¿Í
<ref id="email-class" name=Email>°ú
<ref id="html-class" name=HTML>ÀÌ´Ù.
ÇÊÀÚ´Â MIME ÇüÅÂÀÇ ÀÔÃâ·ÂÀ» ´Ù·ç´Â °¢°¢ÀÇ Å¬·¡½º- MIMEin °ú MIMEout - ¸¦ Ãß°¡ÇÒ »ý°¢ÀÌ´Ù.
<p>
Áö¿ø¿ëŬ·¡½º¿Í Å×½ºÆ® Ŭ·¡½ºµµ ¸î °³ ÀÖ´Ù.  
<ref id="cgi-test-class" name="CGI_Test">,
<ref id="email-test-class" name="Email_Test"> ¿Í
<ref id="email-test-class" name="HTML_Test">´Â ÀνºÅçÀ» Å×½ºÆ®Çϱâ À§ÇÑ °ÍÀÌ´Ù.
À̵é Ŭ·¡½º´Â ÀÌ Å¬·¡½º ¶óÀ̺귯¸®´Â »ç¿ëÇÏ´Â ÀÚ¹Ù ÇÁ·Î±×·¥¿¡¼­ ½ÃÀÛÁ¡(starting-
point)ó·³ »ç¿ëµÉ ¼öµµ ÀÖÀ»°ÍÀÌ´Ù.  
<ref id="text-class" name=Text> Ŭ·¡½º´Â 
<tt>Email</tt> ¿Í <tt>HTML</tt> Ŭ·¡½ºÀÇ ¼öÆÛŬ·¡½ºÀÌ´Ù.  

<sect1>CGI<label id="cgi-class">
<p>

<sect2>Ŭ·¡½º ¹®¹ý
<p>
<tt>public class CGI</tt>

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

<sect2>¸â¹ö ¿ä¾à
<p>
<code>
        CGI()         //  »ý¼ºÀÚ.
        getNames()    //  À̸§µéÀÇ ¸®½ºÆ®¸¦ ¾ò´Â´Ù.
        getValue()    //  À̸§À» ¸í½ÃÇÔÀ¸·Î½á formÀÇ value¸¦ ¾ò´Â´Ù.
</code>

<sect2>ÂüÁ¶
<p>
<tt>CGI_Test</tt>.

<sect2>CGI()
<p>
<descrip>
<tag/¸ñÀû/ »ç¿ë °¡´ÉÇÑ CGI Å×ÀÌŸ¸¦ °¡Áø °´Ã¼¸¦ »ý¼ºÇÑ´Ù.
<tag/¹®¹ý/ <tt>public CGI()</tt>
<tag/¼³¸í/      CGI °´Ã¼°¡ »ý¼º µÇ¾úÀ» ¶§, ¸ðµç »ç¿ë °¡´ÉÇÑ CGIÁ¤º¸°¡ ±× °´Ã¼¿¡ ´ëÇØ 
	  ·ÎÄÃÀÎ ÀúÀå¼Ò·Î º¸³»Áø´Ù.
</descrip>

<sect2>getNames()
<p>
<descrip>
<tag/¸ñÀû/ ÇØ´çÇÏ´Â value¸¦ °®µµ·Ï Á¤ÀÇµÈ nameµéÀ» º¸ÀδÙ.
<tag/¹®¹ý/ <tt>public Enumeration getKeys ()</tt>
<tag/¼³¸í/ ÇØ´çÇÏ´Â value°¡ Á¤ÀÇµÈ nameÀÇ Àüü ¸®½ºÆ®¸¦ Á¦°øÇÑ´Ù.
<tag/¸®ÅÏ/ Á¤ÀÇµÈ ¸ðµç À̸§ÀÇ <tt>Enumeration</tt> 
</descrip>

<sect2>getValue()
<p>
<descrip>
<tag/¸ñÀû/<bf>name</bf>ÀÌ ¸í½ÃµÈ<bf> value</bf>¸¦ ÃëÇÑ´Ù.
<tag/¹®¹ý/ <tt>public String getValue ( String name )</tt>
<tag/¼³¸í/  HTML formÀ¸·ÎºÎÅÍ º¸³»Áø <tt>name</tt>°ú <tt>value</tt>»çÀÌ¿¡ ´ëÀÀÇÏ´Â °ÍÀ» ¸®ÅÏÇÔ. 
<tag>ÆÄ¶ó¸ÞÅÍ
 <descrip>
 <tag/name/ value¸¦ ¼±ÅÃÇϴ Ű
 </descrip>
<tag/¸®ÅÏ/  value¸¦ ´ã°í ÀÖ´Â <tt>String</tt> 
</descrip>

<sect1>CGI_Test<label id="cgi-test-class">
<p>
ÀÌ Å¬·¡½º¿¡´Â <tt>CGI</tt>Ŭ·¡½º¸¦ ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö¿¡ °üÇÑ ¿¹Á¦¿Í <em>Java CGI</em>
ÆÐŰÁö°¡ Á¤È®ÇÏ°Ô µ¿ÀÛÇÏ´ÂÁö È®ÀÎÇϴµ¥ »ç¿ëµÇ´Â Å×½ºÆ® ÇÁ·Î±×·¥ÀÌ µé¾î
ÀÖ´Ù.

<sect2>¸â¹ö¿ä¾à
<p>
<code>
        main()      //  ÇÁ·Î±×·¥ main().
</code>

<sect2>ÂüÁ¶
<p>
<tt>CGI</tt>.

<sect2>main()
<p>
<descrip>
<tag/¸ñÀû/ <tt>main()</tt> ¸Þ¼Òµå¸¦ Á¦°øÇÑ´Ù.
<tag/¹®¹ý/ <tt>public static void main( String argv[] )</tt>
<tag/¼³¸í/ »ç¿ë °¡´ÉÇÑ name/value ½ÖÀÇ ¸®½ºÆ®¿Í ÇöÀç °ªÀ» ¸®ÅÏÇÏ´Â
	   CGI ÇÁ·Î±×·¥¿¡ ´ëÇÑ ÁøÀÔÁ¡(entry point)ÀÌ´Ù.
<tag>ÆÄ¶ó¸ÞÅÍ
 <descrip>
 <tag/argv[]/ <tt>java.cgi</tt> ½ºÅ©¸³Æ®¿¡ ÀÇÇØ ÇÁ·Î±×·¥¿¡ Àü´ÞµÇ´Â ÀÎÀÚµé.
 ÇöÀç »ç¿ë ¾ÈÇÔ
 </descrip>
</descrip>

<sect1>Email<label id="email-class">
<p>

<sect2>Ŭ·¡½º ¹®¹ý
<p>
<tt>public class Email extends Text</tt>

<sect2>Ŭ·¡½º ¹®¹ý
<p>
¸Þ½ÃÁö´Â <tt>Text</tt>Ŭ·¡½ºÀÇ <tt>add* ()</tt> ¸Þ¼Òµå¿Í ÀÌ Å¬·¡½º¿¡ ÀÇÇØ Ãß°¡µÈ e-mail
°ü·Ã(e-mail-specific) ¸Þ¼Òµå·Î ¸¸µé¾îÁø´Ù. ´Ù ¸¶Ä¡¸é, ¸Þ½ÃÁö´Â ¸ñÀûÁö·Î 
º¸³»Áø´Ù.
ÀÌ Å¬·¡½º´Â "Orbits.net"ÆÐŰÁö¿¡ µé¾îÀÖ´Ù.
<sect2>¸â¹ö ¿ä¾à
<p>
<code>
        Email()      //  »ý¼ºÀÚ.
        send()       //  ÀüÀÚ¸ÞÀÏ ¸Þ½ÃÁö¸¦ º¸³½´Ù.
        sendTo()     //  ¸Þ½ÃÁö¿¡ ¸ñÀûÁö¸¦ Ãß°¡ÇÑ´Ù.
        subject()    //  ¸ÞÁöÁö¿¡ ÁÖÁ¦(Subject:)¸¦ Á¤ÇÑ´Ù.
</code>

<sect2>Âü°í
<p>
<tt>Email_Test, Text</tt>.

<sect2>Email()
<p>
<descrip>
<tag/¸ñÀû/ ÀüÀÚ¸ÞÀÏ ¸Þ½ÃÁö¸¦ ´ãÀº °³Ã¼¸¦ »ý¼ºÇÑ´Ù.
<tag/¹®¹ý/ <tt>public Email()</tt>
<tag/¼³¸í/ Email¸Þ¼Òµå·Î¼­ ¿Ï¼º(complete)µÉ ºó ¸Þ½ÃÁö¸¦ ¼Â¾÷ÇÑ´Ù.
<tag/ÂüÁ¶/ <tt>Text</tt>.
</descrip>

<sect2>send()
<p>
<descrip>
<tag/¸ñÀû/ ÀüÀÚ¸ÞÀÏ ¸Þ½Ã½Ã¸¦ º¸³½´Ù.
<tag/¹®¹ý/ <tt>public void send ()</tt>
<tag/¼³¸í/ ¸ÞÁö½Ã¸¦ Á¤ÇüÈ­(format)ÇÏ°í º¸³½´Ù. 
¸ñÀûÁö°¡ Á¤ÇØÁöÁö ¾Ê¾ÒÀ¸¸é, ¾Æ¹« Àϵµ ¹ß»ýÇÏÁö ¾Ê´Â´Ù.
</descrip>

<sect2>sendTo()
<p>
<descrip>
<tag/¸ñÀû/ ¸Þ½ÃÁö¿¡ ¸ñÀûÁö¸¦ Ãß°¡ÇÑ´Ù.
<tag/¹®¹ý/ <tt>public String sendTo ( String address )</tt>
<tag/¼³¸í/ ÀÌ ¸Þ¼ÒµåÀÇ ¸ñÀûÁö ¸®½ºÆ®¿¡  <tt>ÁÖ¼Ò</tt> ¸¦ Ãß°¡ÇÑ´Ù.
ÀüÀÚ¸ÞÀÏ ¸Þ½ÃÁö°¡ °¡Áú ¼ö ÀÖ´Â ¸ñÀûÁöÀÇ ¼ö¿¡´Â Á¤ÇØÁø ÇѰ谡 ¾ø´Ù. 
 ¸®½ºÆ®ÀÇ Å©±â¸¦ ÃæºÐÈ÷ Å©°Ô ¸¸µç´Ù¸é,<em> ¸ÞÀÏ Àü¼Û ¿¡ÀÌÀüÆ®(Mail Transport Agent)</em> °¡ 
Çã¿ëÇÒ ¼ö ÀÖ´Â ÆÄ¶ó¸ÞÅÍ ¸®½ºÆ®ÀÇ »çÀÌÁ ÃʰúÇÒ ¼ö ÀÖÀ¸¸ç ±×·¸Áö ¾Ê´Ù¸é ¸Þ¸ð¸®¸¦ ´Ù ½á¹ö¸± °ÍÀÌ´Ù.
<tag>ÆÄ¶ó¸ÞÅÍ/
 <descrip>
 <tag/address/ ¸Þ½ÃÁö¸¦ º¸³¾ ¸ñÀûÁö.
 </descrip>
</descrip>

<sect2>subject()
<p>
<descrip>
<tag/¸ñÀû/ ¸Þ½ÃÁöÀÇ ÁÖÁ¦¸¦ Á¤ÇÑ´Ù.
<tag/¹®¹ý/ <tt>public void subject ( String subject )</tt>
<tag/¼³¸í/  ÀüÀÚ¸ÞÀÏÀÇ <tt>Subject:</tt> ÁÙÀÇ ÅØ½ºÆ®¸¦ Á¤ÇÑ´Ù. ¸¸¾à Çѹø ÀÌ»ó È£ÃâµÇ¸é, ¸Ç
	  ¸¶Áö¸·¿¡ Á¤ÇÑ subject°¡ »ç¿ëµÈ´Ù.
<tag/ÆÄ¶ó¸ÞÅÍ/
 <descrip>
 <tag/subject/ ¸Þ½ÃÁöÀÇ  <tt>Subject:</tt> ÁÙÀÇ ÅØ½ºÆ®
 </descrip>
</descrip>

<sect1>Email_Test<label id="email-test-class">
<p>
ÀÌ Å¬·¡½º´Â <tt>Email</tt> Ŭ·¡½º¸¦ ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö¿¡ °üÇÑ ¿¹Á¦¿Í <tt>Java CGI</tt>
ÆÐŰÁö°¡ Á¤È®ÇÏ°Ô µ¿ÀÛÇÏ´ÂÁö È®ÀÎÇϴµ¥ »ç¿ëµÇ´Â Å×½ºÆ® ÇÁ·Î±×·¥ ¿¹Á¦°¡ µé¾îÀÖ´Ù.
<sect2>¸â¹ö ¿ä¾à
<p>
<code>
        main()      //  ÇÁ·Î±×·¥ main().
</code>

<sect2>ÂüÁ¶
<p>
<tt>Email</tt>.

<sect2>main()
<p>
<descrip>
<tag/¸ñÀû/ <tt>main()</tt> ¸Þ¼Òµå¸¦ Á¦°øÇÑ´Ù.
<tag/¹®¹ý/ <tt>public static void main( String argv[] )</tt>
<tag/¼³¸í/ 
 »ç¿ë °¡´ÉÇÑ name/value ½Ö°ú ÇöÀç ±× ½ÖÀÇ ¸®½ºÆ®¸¦ ¸®ÅÏÇÏ´Â CGI ÇÁ·Î±×·¥¿¡
´ëÇÑ ÁøÀÔÁ¡(entry point)ÀÌ´Ù.  <tt>Email</tt> º¯¼ö¿¡ ¸í½ÃµÈ ÁÖ¼Ò¿¡µµ 
ÀÌ ¸®½ºÆ®¸¦ º¸³½´Ù.
<tag>ÆÄ¶ó¸ÞÅÍ
 <descrip>
 <tag/argv[]/ <tt>java.cgi</tt> ½ºÅ©¸³Æ®¿¡ ÀÇÇØ ÇÁ·Î±×·¥¿¡ Àü´ÞµÇ´Â ÀÎÀÚµé.
 ÇöÀç »ç¿ë ¾ÈÇÔ.
 </descrip>
</descrip>

<sect1>HTML<label id="html-class">
<p>

<sect2>Ŭ·¡½º ¹®¹ý
<p>
<tt>public class HTML extends Text</tt>

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

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

<sect2>ÂüÁ¶
<p>
<tt>HTML_Test, Text</tt>.

<sect2>HTML()
<p>
<descrip>
<tag/¸ñÀû/ HTML¸Þ½ÃÁö¸¦ ´ãÀ» °´Ã¼¸¦ »ý¼ºÇÑ´Ù.
<tag/¹®¹ý/ <tt>public HTML()</tt>
<tag/¼³¸í/ HTML ¸Þ¼Òµå¿¡ ÀÇÇØ¼­ ¿Ï¼ºµÉ ºó ¸Þ½ÃÁö¸¦ ¸¸µç´Ù.
<tag/ÂüÁ¶/ <tt>Text</tt>.
</descrip>

<sect2>author()
<p>
<descrip>
<tag/¸ñÀû/¹®Àú ÀúÀÚÀÇ À̸§À» Á¤ÇÑ´Ù.
<tag/Syntax/ <tt>public void author ( String author )</tt>
<tag/¼³¸í/¹®¼­ÀÇ ÀúÀÚ¸¦ <tt>author</tt>·Î Á¤ÇÑ´Ù.
<tag>ÆÄ¶ó¸ÞÅÍ/
 <descrip>
 <tag/author/ ¸Þ½ÃÁöÀÇ ÀúÀÚ·Î »ç¿ëµÉ ÅØ½ºÆ®.
 </descrip>
<tag/ÂüÁ¶/ <tt>title()</tt>.
</descrip>

<sect2>definitionList()
<p>
<descrip>
<tag/¸ñÀû/ Á¤ÀÇ ¸®½ºÆ®¸¦ ½ÃÀÛÇÑ´Ù.
<tag/¹®¹ý/ <tt>public void definitionList ()</tt>
<tag/¼³¸í/ Á¤ÀÇ ¸®½ºÆ®¸¦ ½ÃÀÛÇÑ´Ù.
<em>Á¤ÀÇ</em> ¸®½ºÆ®´Â ¸®½ºÆ® ¾ÈÀÇ °¢°¢ÀÇ ¿£Æ®¸®°¡ 
  ±× <em>¿ë¾î(term)</em>ÀÇ Á¤ÀÇ <em>ÅØ½ºÆ®(text)</em>  ´ÙÀ½¿¡ ³ª¿À´Â Ç׸ñÀÎ 
  ¸®½ºÆ®ÀÌ´Ù. Á¤ÀÇ ¸®½ºÆ®ÀÇ ½ÃÀÛÀº (ÃÖ¼ÒÇÑ) ÇϳªÀÇ ¿ë¾î/ÅØ½ºÆ® ½ÖÀ» 
  »ý¼ºÇϰí <tt>endList()</tt> ¸Þ¼Òµå°¡ Çѹø È£ÃâµÈ ÀÌÈÄ À̾î¾ß ÇÑ´Ù.
<em>ÇöÀç ¸®½ºÆ®µéÀº ³×½ºÆ®(nest)µÉ ¼ö ¾øÀ½À» ÁÖÀÇÇ϶ó.</em>
<tag/ÂüÁ¶/ <tt>definitionListTerm()</tt>, <tt>endList()</tt>,
<tt>listItem()</tt>.
</descrip>

<sect2>definitionListTerm()
<p>
<descrip>
<tag/¸ñÀû/ Á¤ÀÇ ¸®½ºÆ®¿¡ ÇϳªÀÇ ¿ë¾î¸¦ Ãß°¡ÇÑ´Ù.
<tag/¹®¹ý/ <tt>public void definitionListTerm ()</tt>
<tag/¼³¸í/ Á¤ÀÇ ¸®½ºÆ®¿¡ ÇϳªÀÇ ¿ë¾î¸¦ Ãß°¡ÇÑ´Ù.
Çö ¸®½ºÆ® ¿£Æ®¸®ÀÇ ¿ë¾î ºÎºÐÀÇ ÅØ½ºÆ®´Â ÀÌ ¸Þ¼Òµå°¡ È£ÃâµÇ°í ÇØ´çµÇ´Â<tt> listItem</tt>¸Þ¼Òµå°¡
 È£ÃâµÇ±â Àü¿¡ ¸Þ½ÃÁö¿¡ µ¡ºÙ¿©Á®¾ß ÇÑ´Ù.

<tag/ÂüÁ¶/ <tt>definitionList()</tt>, <tt>listItem()</tt>.
</descrip>

<sect2>endList()
<p>
<descrip>
<tag/¸ñÀû/ ¸®½ºÆ®¸¦ ³¡¸Î´Â´Ù.
<tag/¹®¹ý/ <tt>public void endList ()</tt>
<tag/¼³¸í/ ¸®½ºÆ®¸¦ ³¡¸Î´Â´Ù.
ÀÌ ¸Þ¼Òµå´Â ÇÑ ¸®½ºÆ®¸¦ ³¡³½´Ù. 
<em>ÇöÀç ¸®½ºÆ®µéÀº ³×½ºÆ®µÉ ¼ö ¾øÀ½À» ÁÖ¸ñÇ϶ó.</em>
<tag/ÂüÁ¶/ <tt>definitionList()</tt>.
</descrip>

<sect2>listItem()
<p>
<descrip>
<tag/¸ñÀû/¸®½ºÆ®¿¡ ¿£Æ®¸® Çϳª¸¦ Ãß°¡ÇÑ´Ù.
<tag/¹®¹ý/ <tt>public void listItem ()</tt>
<tag// <tt>public void listItem ( String item )</tt>
<tag// <tt>public boolean listItem ( String term, String item )</tt>
<tag/¼³¸í/ ¸®½ºÆ®¿¡ ¿£Æ®¸® Çϳª¸¦ Ãß°¡ÇÑ´Ù.
¸¸¾à ù¹øÂ° Æû(form)ÀÌ »ç¿ëµÈ´Ù¸é, Çö ¸®½ºÆ® ¾ÆÀÌÅÛÀÇ ÅØ½ºÆ®´Â 
ÀÌ ¸Þ¼Òµå°¡ È£ÃâµÈ ´ÙÀ½¿¡ ±×¸®°í ´Ù¸¥ ¸®½ºÆ® ¸Þ¼Òµå°¡ È£ÃâµÇ±â Àü¿¡ 
¸Þ½ÃÁö¿¡ ºÙ¿©Á®¾ß ÇÑ´Ù. µÎ¹øÂ°¿Í ¼¼¹øÂ° Æû¿¡¼­´Â, <tt>item</tt> ÅØ½ºÆ®´Â
 ÀÌ ¸Þ½ÃÁö¿¡ µ¡ºÙ¿©Áö´Â ´ë½Å¿¡(ȤÀº Ãß°¡·Î) ¸Þ¼ÒµåÀÇ 
  ÆÄ¶ó¸ÞÅÍ·Î½á ¸í½ÃµÈ´Ù.¼¼¹øÂ°´Â Á¤ÀÇ ¸®½ºÆ®¿¡ °ü·ÃµÇ°í(specific), ¿ë¾î¿Í
  ¸®½ºÆ® ¿£Æ®¸®ÀÇ Á¤ÀǸ¦ Á¦°øÇÑ´Ù.
<tag/ÆÄ¶ó¸ÞÅÍ/
 <descrip>
 <tag/item/ ¸®½ºÆ® ¿£Æ®¸®ÀÇ ÅØ½ºÆ®.
 <tag/term/ Á¤ÀÇ ¸®½ºÆ® ¿£Æ®¸®ÀÇ ¿ë¾î ºÎºÐÀÇ ÅØ½ºÆ®.
 </descrip>
<tag/ÂüÁ¶/ <tt>definitionList()</tt>, <tt>definitionListTerm()</tt>,
<tt>endList()</tt>.
</descrip>

<sect2>send()
<p>
<descrip>
<tag/¸ñÀû/ HTML¸Þ½ÃÁö¸¦ º¸³½´Ù.
<tag/¹®¹ý/ <tt>public void send ()</tt>
<tag/¼³¸í/ HTML ¸Þ½ÃÁö¸¦ º¸³½´Ù.
</descrip>

<sect2>title()
<p>
<descrip>
<tag/¸ñÀû/ ¹®¼­ Á¦¸ñÀÇ ÅØ½ºÆ®¸¦ Á¤ÇÑ´Ù.
<tag/¹®¹ý/ <tt>public void title ( String title )</tt>
<tag/¼³¸í/ ¹®¼­ Á¦¸ñÀÇ ÅØ½ºÆ®¸¦ Á¤ÇÑ´Ù.
<tag/ÆÄ¶ó¸ÞÅÍ/
 <descrip>
 <tag/title/ ¸Þ½ÃÁö Á¦¸ñÀÇ ÅØ½ºÆ®.
 </descrip>
<tag/ÂüÁ¶/ <tt>author()</tt>.
</descrip>

<sect1>HTML_Test<label id="html-test-class">
<p>
ÀÌ Å¬·¡½º¿¡´Â <tt>HTML</tt>Ŭ·¡½º¸¦ ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö¿¡ °üÇÑ ¿¹Á¦¿Í <em>Java CGI</em>
ÆÐŰÁö°¡ Á¤È®ÇÏ°Ô µ¿ÀÛÇÏ´ÂÁö¸¦ È®ÀÎÇϴµ¥ »ç¿ëµÇ´Â Å×½ºÆ® ÇÁ·Î±×·¥ÀÌ µé¾îÀÖ´Ù.
<sect2>¸â¹ö ¿ä¾à
<p>
<code>
        main()      //  ÇÁ·Î±×·¥ main().
</code>

<sect2>ÂüÁ¶
<p>
<tt>HTML</tt>.

<sect2>main()
<p>
<descrip>
<tag/¸ñÀû/ <tt>main()</tt> ¸Þ¼Òµå¸¦ Á¦°øÇÑ´Ù.
<tag/¹®¹ý/ <tt>public static void main( String argv[] )</tt>
<tag/¼³¸í/ 
 HTML¹®¼­¿¡¼­ Á¤ÀÇ ¸®½ºÆ® ¿ø¼Ò¿¡¼­ °¢°¢ÀÇ name/valueÀÇ ½ÖÀ» º¸À̸ç
»ç¿ë °¡´ÉÇÑ name/valueÀÇ ½ÖÀÇ ¸®½ºÆ®¸¦ ¸®ÅÏÇÏ´Â CGIÇÁ·Î±×·¥¿¡ ´ëÇÑ 
 ÁøÀÔÁ¡ÀÌ´Ù.
<tag>ÆÄ¶ó¸ÞÅÍ 
 <descrip>
 <tag/argv[]/ <tt>java.cgi</tt>½ºÅ©¸³Æ®¿¡ ÀÇÇØ ÇÁ·Î±×·¥¿¡ Àü´ÞµÇ´Â ÀÎÀÚµé.
 ÇöÀç »ç¿ë ¾ÈÇÔ. 
 </descrip>
</descrip>

<sect1>Text<label id="text-class">
<p>

<sect2>Ŭ·¡½º ¹®¹ý
<p>
<tt>public abstract class Text</tt>

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

<sect2>¸â¹ö ¿ä¾à
<p>
<code>
        Text()            //  »ý¼ºÀÚ.
        add()             //  ÀÌ °´Ã¼¿¡ ÅØ½ºÆ®¸¦ Ãß°¡ÇÑ´Ù.
        addLineBreak()    //  °èÇà Ãß°¡.
        addParagraph()    //  ´Ü¶ô°èÇà Ãß°¡.
</code>

<sect2>Âü°í
<p>
<tt>Email</tt>, <tt>HTML</tt>.

<sect2>add()
<p>
<descrip>
<tag/¸ñÀû/ ¾ÆÀÌÅÛ¿¡ ÅØ½ºÆ®¸¦ Ãß°¡ÇÑ´Ù.
<tag/¹®¹ý/ <tt>public void add ( char addition )</tt>
<tag// <tt>public void add ( String addition )</tt>
<tag// <tt>public void add ( StringBuffer addition )</tt>
<tag/¼³¸í/ ÅØ½ºÆ® ¾ÆÀÌÅÛÀÇ ³»¿ë¿¡ <tt>addition</tt>¸¦ Ãß°¡ÇÑ´Ù.
<tag/ÆÄ¶ó¸ÞÅÍ/
 <descrip>
 <tag/addition/ ÅØ½ºÆ® ¾ÆÀÌÅÛ¿¡ Ãß°¡µÉ ÅØ½ºÆ®.
 </descrip>
<tag/ÂüÁ¶/ <tt>addLineBreak()</tt>, <tt>addParagraph()</tt>.
</descrip>

<sect2>addLineBreak()
<p>
<descrip>
<tag/¸ñÀû/ Çö ½ÃÁ¡¿¡¼­ ÅØ½ºÆ®¿¡ °èÇàÀ» ÇÑ´Ù.
<tag/¹®¹ý/ <tt>public void addLineBreak ()</tt>
<tag/¼³¸í/ Çö ½ÃÁ¡¿¡¼­ ÅØ½ºÆ®¿¡ °èÇàÀ» ÇÑ´Ù.
<tag/ÂüÁ¶/ <tt>add()</tt>, <tt>addParagraph()</tt>.
</descrip>

<sect2>addParagraph()
<p>
<descrip>
<tag/¸ñÀû/ »õ·Î¿î ´Ü¶ôÀ» ½ÃÀÛÇÑ´Ù.
<tag/¹®¹ý/ <tt>public void add ()</tt>
<tag/¼³¸í/ ÅØ½ºÆ® È帧ÀÇ Çö ½ÃÁ¡¿¡¼­ »õ ´Ü¶ôÀ» ½ÃÀÛÇÑ´Ù.
<tag/ÂüÁ¶/ <tt>add()</tt>, <tt>addLineBreak()</tt>.
</descrip>

<sect>ÇâÈÄ °èȹ
<p>
<itemize>
<item>
Email Ŭ·¡½º¿¡ Ãß°¡:
 <descrip>
 <tag/Email( int capacity )/ ¸Þ½ÃÁö°¡ ÇÒ´çµÇ±â À§Çؼ­ ¾ó¸¶³ª ¸¹Àº °ø°£ÀÌ ÇÊ¿äÇÑÁö ¾Ë°í ÀÖÀ» ¶§ »ç¿ë.
 <tag/sendTo( String [] address )/ ÀüÀÚ¸ÞÀÏ ¸Þ½ÃÁö¿¡ ÁÖ(primary) ¸ñÀûÁö ¸®½ºÆ® Ãß°¡.
 <tag/sendCc( String address )/ ÀüÀÚ¸ÞÀÏ ¸Þ½ÃÁö¿¡ Ä«º»Ä«ÇÇ(º¹»çº») ¸ñÀûÁö Ãß°¡.
 <tag/sendCc( String [] address )/ ÀüÀÚ¸ÞÀÏ ¸Þ½ÃÁö¿¡ Ä«º»Ä«ÇÇ(º¹»çº») ¸ñÀûÁö Ãß°¡.
 <tag/sendBcc( String address )/ ÀüÀÚ¸ÞÀÏ ¸Þ½ÃÁö¿¡  ºí¶óÀεå Ä«º» Ä«ÇÇ(ÀÍ¸í º¹»çº») ¸ñÀûÁö Ãß°¡.
 <tag/sendBcc( String [] address )/ ÀüÀÚ¸ÞÀÏ ¸Þ½ÃÁö¿¡ ºí¶óÀεå Ä«º» Ä«ÇÇ(ÀÍ¸í º¹»çº») ¸ñÀûÁö Ãß°¡.
 </descrip>
</item>
<item>
HTML Ŭ·¡½º¿¡ Ãß°¡:
 <descrip>
 <tag/HTML( int capacity )/ ¸Þ½ÃÁö°¡ ÇÒ´çµÇ±â À§Çؼ­ ¾ó¸¶³ª ¸¹Àº °ø°£ÀÌ ÇÊ¿äÇÑÁö ¾Ë ¶§ »ç¿ë.
 <tag/public void unorderedList()/ ¹«Á¤·Ä ¸®½ºÆ®¸¦ ½ÃÀÛ.
 <tag/public void orderedList()/  ¹«Á¤·Ä ¸®¸£Æ®¸¦ ½ÃÀÛ.
 <tag/public void directoryList()/  ¸ñ·Ï ¸®½ºÆ®¸¦ ½ÃÀÛ.                   
 <tag/public void menuList()/  ¸Þ´º ¸®½ºÆ®¸¦ ½ÃÀÛ.               
 <tag/void anchor( String anchorName )/  anchor¸¦ ¸í½Ã.
 <tag/void link( String url, String text )/  ¸µÅ©¸¦ ¸í½Ã.
 <tag/void applet( String url, String altText )/  ¾ÖÇø´ ¸µÅ©¸¦ ¸í½Ã.
 </descrip>
</item>
<item>
HTML¸®½ºÆ®°¡ ³×½ºÆ® µÇ°Ô ÇÑ´Ù.
</item>
<item>
 HTML ¸®½ºÆ® Æ÷¸ËÆÃ(formatting) ÄÚµåÀÇ ¿Ã¹Ù¸¥ Á¤·ÄÀ» ¼öÇàÇÒ ¿¡·¯ üŷ Äڵ带 Ãß°¡ÇÑ´Ù. 
</item>
<item>
<tt>Makefile</tt>¿¡¼­ ȯ°æ µ¥ÀÌŸ ÆÄÀÏÀÇ À§Ä¡¸¦ Á¶Á¤ÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù.
</item>
<item>
µ¥ÀÌŸ Àü¼ÛÀÎ GET¸Þ¼Òµå¸¦ »ç¿ëÇÒ ¶§ ¸®½ºÆ®¿¡¼­ ³ªÅ¸³ª´Â ºó name/value ½ÖÀ» ¾ø¾Ø´Ù.
</item>
<item>
°è¼ÓÇØ¼­ º¯¼ö À̸§À» Á¦°øÇÒ java.util.Enumeration ÀÎÅÍÆäÀ̽ºÀÇ CGI·ÎÀÇ ±¸ÇöÀ» »ý°¢Áß.
</item>
<item>
ÀÌ ÆÐŰÁö¿¡ ÀÖ´Â ¸ðµç ¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â,<tt> Test</tt> Ŭ·¡½º¸¦ Ãß°¡ÇÑ´Ù.
</item>
<item>
µð¹ö±ë ¸ñÀûÀ¸·Î Á¡ÁøÀûÀÎ Å×½ºÆ®¸¦ Çϱâ À§ÇØ <tt>CGI_Test</tt>, <tt>Email_Test</tt> ¿Í
<tt>HTML_Test</tt> ¼­·Î°¡ ¾î¶»°Ô ºôµå µÇ´ÂÁö  ¹®¼­È­ÇÑ´Ù.
</item>
<item>
¾î¶»°Ô Test°¡ ÀÌ ÆÐŰÁö¿¡¼­ °¡´ÉÇÑ ¸ðµç ±â´ÉÀ» ÀÌ¿ëÇÏ´ÂÁö ¹®¼­È­ÇÑ´Ù.
</item>
</itemize>

<sect>º¯È­
<p>

<sect1> 0.4¿¡¼­ 0.5°£ÀÇ º¯È­
<p>
<itemize>
<item>
¸¶Áö¸· ÆÇÀ» ¹Ý¿µÇÏ´Â º¯È­µÈ ¹®¼­È­¿Í ÁÖ¼®
</item>
</itemize>

<sect1>0.3¿¡¼­ 0.4°£ÀÇ º¯È­
<p>
<itemize>
<item>
ÃÖ¼ÒÇÑÀÇ ±â´ÉÀ» Á¦°øÇÏ´Â HTML Ŭ·¡½ºÀÇ °ñÀÚ ¹èÆ÷.
</item>
<item>
HTML_Test Ŭ·¡½º¿Í javahtmltest.html-dist ÀÛ¼º.
</item>
<item>
Á¤ÀÇ ¸®½ºÆ®¸¦ ´Ù·ç±â À§ÇÑ HTML ¸Þ¼Òµå¸¦ Ãß°¡.
</item>
</itemize>

<sect1>0.2¿¡¼­ 0.3°£ÀÇ º¯È­
<p>
<itemize>
<item>
Text ¿Í Email Ŭ·¡½º¸¦ Ãß°¡. HTML Ŭ·¡½ºµµ Ãß°¡µÇ¾úÀ¸³ª, ÀÌ ½Ã±â¿¡´Â ½ÃÀÛ ´Ü°è Á¤µµ.
</item>
<item>
ÆÐŰÁö¿¡ ´Ù¾çÇÑ Å¬·¡½º¸¦ ³ÖÀ½. 
ÁÖµÈ Å¬·¡½º´Â <tt>Orbits.net.*</tt>¿¡ µé¾î ÀÖÀ¸¸ç,
Áö¿ø Ŭ·¡½º<tt> Text</tt>´Â <tt>Orbits.text.Text</tt>¾È¿¡ ÀÖÀ½.
</item>
<item>
<tt>CGItest</tt> °¡ CGI_Test ·Î ¹Ù²ñ.
</item>
<item>
<tt>Email_Test</tt> Ŭ·¡½º Ãß°¡.
</item>
</itemize>

<sect1>0.1¿¡¼­ 0.2°£ÀÇ º¯È­
<p>
<itemize>
<item>
ȯ°æº¯¼ö¸¦ ÀÚ¹Ù ÀÎÅÍÇÁ¸®ÅÍÀÇ Ä¿¸àµå ¶óÀÎ ¾È¿¡ ³Ö´Â ´ë½Å¿¡ Àӽà ÆÄÀÏ¿¡ 
³õÀÓ.<tt> CGI</tt> Ŭ·¡½º¿Í <tt>java.cgi</tt>°¡ ¼öÁ¤µÇ¾úÀ½.
</item>
<item>
<tt>Javacgitest.html</tt> ¹®¼­°¡ ¹èÆ÷ÆÇ¿¡ Æ÷ÇÔµÊ.
</item>
<item>
 ÀνºÅç °úÁ¤ÀÇ <tt>make</tt>¿¡ ÀÇÇØ ¼öÁ¤µÈ ÅØ½ºÆ® ÆÄÀÏ¿¡<em> -dist</em>·Î ³¡³ª´Â À̸§À» ºÙÀÓ.
</item>
</itemize>
</article>


ID
Password
Join
You can do very well in speculation where land or anything to do with earth is concerned.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:30
Processing time 0.0086 sec