· 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>




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.0077 sec