Java CGI HOWTO by David H. Silber dhs@orbits.com 1996³â 11¿ù 18ÀÏ ¹öÀü 0.4 ¹ø¿ª : ¹ÚÁÖÈñ ( jhpark91@cse.hanyang.ac.kr ) ÀÌ HOWTO ¹®¼­´Â ¼­¹ö¿¡¼­ ÀÚ¹Ù·Î ÀÛ¼ºµÈ CGI ÇÁ·Î±×·¥À» ¾î¶»°Ô ¼Â¾÷ÇÏ¸ç ¶Ç CGI ÇÁ·Î±×·¥À» ÀÛ¼ºÇϱâÀ§ÇØ ¾î¶»°Ô ÀÚ¹Ù¸¦ »ç¿ëÇÏ´ÂÁö¸¦ ¼³¸íÇÑ´Ù. HOWTO ¹®¼­´Â ¸®´ª½º ¿î¿µÃ¼Á¦¸¦ ¸ñÀûÀ¸·Î ÀÛ¼ºµÇÁö¸¸, ÀÌ ¹®¼­´Â ƯÁ¤ÇÑ À¯´Ð½º ¹öÀü¿¡ »ó°ü ¾øÀÌ Àû¿ëµÈ´Ù. 1. ¼Ò°³ ÀÚ¹Ù°¡ µðÀÚÀÎµÈ ¹æ½Ä ¶§¹®¿¡ ÇÁ·Î±×·¡¸Ó´Â ½Ã½ºÅÛÀÇ È¯°æ º¯¼öµéÀ» ½±°Ô ¾×¼¼½ºÇÒ ¼ö ¾ø´Ù. Java Development Kit (JDK)ÀÌ Á¦ÀÛµÈ ¹æ½Ä ¶§¹®¿¡, ÇÁ·Î±×·¥À» È£ÃâÇϱâ À§Çؼ­´Â ¿©·¯ °³ÀÇ ÅäÅ«À» ÀÌ¿ëÇØ¾ß Çϸç, À̰͵µ Ç¥ÁØ HTMLÆû/CGI ÀÛµ¿¹æ½Ä°ú Àß ¸ÂÁö ¾Ê´Â´Ù. ÀÌ·¯ÇÑ ÇѰ迡 ¸î °¡Áö ¹æ¹ýÀÌ ÀÖÀ¸¸ç, º»ÀÎÀÌ ±× Áß Çϳª¸¦ ±¸ÇöÇÏ¿´´Ù. ÀÚ¼¼ÇÑ °ÍÀº µÚ¸¦ ´õ Àо¶ó. 1.1. »çÀü Áö½Ä HTML°ú CGI °³³ä¿¡ °üÇÑ ÀϹÝÀû Áö½Ä°ú ÃÖ¼ÒÇÑ HTTP¼­¹ö¿¡ °üÇÏ¿© ±âº»ÀûÀÎ Áö½ÄÀº ¾Ë°íÀÖ´Ù°í °¡Á¤ÇÑ´Ù. ¹°·Ð ÀÚ¹Ù·Î ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â ¹ýÀ» ¾Ë¾Æ¾ß ÇÏ¸ç ±×·¸Áö ¸øÇϸé ÀÌ ¹®¼­´Â ÀÌÇØÇϱâ Èûµé´Ù. 1.2 º» ¹®¼­¿¡ °üÇÏ¿© º» ¹®¼­ÀÇ ÃÖ±Ù ÆÇÀº http://www.orbits.com/software/Java_CGI.html ¿¡¼­ ÀÐÀ» ¼ö ÀÖ´Ù. 1.3 ÆÐŰÁö ¿©±â ÀûÈù ÆÐŰÁö´Â ftp://ftp.orbits.com/pub/software/java_cgi-0.4.tgz ¿¡¼­ anonymous FTP·Î ¾òÀ» ¼ö ÀÖ´Ù. ÀÌ ÆÐŰÁö ¹èÆ÷ÆÇ¿¡´Â º» ¹®¼­ÀÇ SGML ¼Ò½ºµµ µé¾îÀÖ´Ù. ÀÌ ÆÐŰÁö´Â GNU Library General Public LicenseÁ¶Ç׿¡ ÀǰÅÇØ ¹èÆ÷µÈ´Ù. º» ¹®¼­´Â ¸®´ª½º HOWTO ÆÇ±Ç ÁÖÀÇ»çÇ׿¡ ÀǰÅÇØ¼­ ¹èÆ÷ µÈ´Ù. ¸¸¾à º» ¼ÒÇÁÆ®¿þ¾î¸¦ »ç¿ë ÇÑ´Ù¸é, ´Ù¸¥ »ç¶÷µéÀÌ ÀÌ Java CGIŬ·¡½º¸¦ ¹ß°ßÇÒ ¼ö ÀÖ°Ô http://www.orbits.com/software/Java_CGI.html ÀÇ ·¹ÆÛ·±½º¸¦ ´Þ±â ¹Ù¶õ´Ù. 1.4 ¼±Àü ÇѸ¶µð ÀÌ ¹®¼­´Â Stellar Orbits Technology Services¿¡ ÀÇÇØ Á¦°øµÇ¾ú´Ù. (¿ì¸®°¡ ÇÏ´Â °ÍÀ» º¸°í ½Í´Ù¸é http://www.orbits.com/ ¸¦ µÑ·¯º¸¶ó) 2. ÀÚ¹Ù CGIÇÁ·Î±×·¥À» ½ÇÇàÇϱâ À§ÇØ ¼­¹ö ¼ÂÆÃÇϱâ (¼³¸í°ú ÇÔ²²) ÀÌ ºÎºÐÀº ¿©·¯ºÐÀÇ ¼³Ä¡ ÀÛ¾÷ÀÌ ¾î¶² ¿µÇâÀ» ³¢Ä¡´ÂÁö ¿©·¯ºÐ ÀÚ½ÅÀÌ ¾Ë¾Æº¸°Ô Çϱâ À§ÇØ Ç³ºÎÇÑ ¼³¸í°ú ÇÔ²² º»ÀÎÀÇ Java CGIÆÐŰÁö¸¦ ÀνºÅç ÇÒ °ÍÀÌ´Ù.¸¸¾à ÀÌ ÇÁ·Î±×·¥À» ÀνºÅ縸Çϰí ÀÚÁú±¸·¹ÇÑ °ÍÀº ¾Ë±â ½È´Ù¸é "Java CGI ÇÁ·Î±×·¥µéÀ» ½ÇÇàÇϱâ À§ÇØ ¼­¹ö ¼Â¾÷Çϱâ" ·Î ³Ñ¾î°¡¶ó. 2.1. ½Ã½ºÅÛ ¿ä±¸»çÇ× ÀÌ ¼ÒÇÁÆ®¿þ¾î´Â Java Development KitÀÌ ÀνºÅçµÈ ´ëºÎºÐÀÇ À¯´Ð½º ÇüÅÂÀÇ À¥ ¼­¹ö¿¡¼­ ÀÛµ¿ÇÑ´Ù. º»ÀÎÀº apache¸¦ HTTPµ¥¸óÀ¸·Î ½ÇÇà½ÃŰ¸ç µ¥ºñ¾È ¸®´ª½º¸¦ »ç¿ëÇϰí ÀÖ´Ù. ¸¸¾à ¿©·¯ºÐÀÇ ¼­¹ö¿¡¼­ ÀÛµ¿ÇÏÁö ¾ÊÀ¸¸é dhs@orbits.comÀ¸·Î ¿¬¶ô ÇØÁֱ⠹ٶõ´Ù. ºÒÇàÈ÷µµ ÀÚ¹Ù ·±Å¸ÀÓ ÀÎÅÍÇÁ¸®ÅÍ´Â ¸Þ¸ð¸®¸¦ ¸¹ÀÌ ÇÊ¿äÇÑ °Í ó·³ º¸ÀδÙ. Java CGI ÇÁ·Î±×·¥µéÀ» ¿©·¯ ¹ø ½ÇÇà ÇÑ´Ù¸é ¸î ¸Þ°¡¹ÙÀÌÆ®ÀÇ ·¥À» ¼­¹ö¿¡ ´õ ±ò¾Æ¾ß µÉ °ÍÀÌ´Ù. 2.2. Java CGI ¾Öµå-¿Â ¼ÒÇÁÆ®¿þ¾î ÀÌ ¹®¼­¿¡¼­ ¼³¸íÇÏ·Á ÇÏ´Â º»ÀÎÀÌ ÀÛ¼ºÇÑ ¼ÒÇÁÆ®¿þ¾î´Â Java CGI ¶ó°í ÇÑ´Ù. ftp://www.orbits.com/pub/software/java_cgi-0.4.tgz ¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù. (¹öÀüÀÇ ¼ýÀÚ´Â ¹Ù²î¾úÀ»Áöµµ ¸ð¸¥´Ù.) 2.3 ¼Ò½º ¾ÐÃà Ç®±â ÀÌ ÆÐŰÁö¸¦ Ç®¾îµÑ Àû´çÇÑ µð·ºÅ丮¸¦ ã¾Æ¶ó. ( ´Ù¸¥ ÆÐŰÁö¸¦ Ç®¾î µÐ ÀÏÁ¤ÇÑ °÷ÀÌ ¾ø´Ù¸é, /usr/local/src ¸¦ »ç¿ëÇ϶ó.) ´ÙÀ½ÀÇ ¸í·ÉÀ¸·Î ¹èÆ÷ÆÇÀ» Ǭ´Ù. gzip -dc java_cgi-0.4.tgz | tar -xvf - ÀÌ ¸í·ÉÀÌjava_cgi-0.4¶ó´Â µð·ºÅ丮¸¦ »ý¼ºÇÒ °ÍÀÌ´Ù. °Å±â¿¡ ÀÌ ´ÙÀ½ ´Ü°èºÎÅÍ Âü°íÇÒ ÆÄÀÏÀÌ ÀÖÀ» °ÍÀÌ´Ù. (¹öÀüÀÇ ¼ýÀÚ°¡ ¹Ù²î¾ú´Ù¸é, Áö±ÝºÎÅÍ´Â ±× ¹èÆ÷ÆÇÀÇ ¼³¸íÀ» Âü°íÇ϶ó) 2.4 ¿©·¯ºÐÀÇ Áö¿ª ÆÐ½º(Local Path)¿¡ °üÇÑ ¹æÄ§À» Á¤Ç϶ó Java CGIÇÁ·Î±×·¥µéÀ» ¾îµð¿¡ µÑÁö °áÁ¤Ç϶ó. º¸Åë, ¿©·¯ºÐÀÇ cgi-binµð·ºÅ丮¿¡ °°ÀÌ µÑ °ÍÀÌ´Ù. º»ÀÎÀÇ ¾ÆÆÄÄ¡ ¼­¹ö´Â cgi-bin µð·ºÅ丮·Î½á /var/web/cgi-binÀ» »ç¿ëÇÏ°Ô ¼³Á¤µÇ¾î À־, Java CGI ÇÁ·Î±×·¥µéÀ» ³Ö¾îµÑ µð·ºÅ丮·Î´Â /var/web/javacgi ¸¦ »ç¿ëÇÑ´Ù. ¿©·¯ºÐÀº ÁöÁ¤µÈ CLASSPATH µð·ºÅ丮¿¡ Java CGI ÇÁ·Î±×·¥µéÀ» ³Ö°í ½ÍÁö ¾ÊÀ» Áöµµ ¸ð¸¥´Ù. ½Ã½ºÅÛ ¼³Á¤À» ¹Ý¿µÇϱâ À§ÇØ Makefile À» ÆíÁýÇ϶ó. root·Î ·Î±×ÀÎ ÇÑ °ÍÀ» È®ÀÎÇϰí make installÀ» ½ÇÇàÇ϶ó. ÀÌ ¸í·ÉÀÌ ÀÚ¹Ù ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇϰí,java.cgi ¶ó´Â ½ºÅ©¸³Æ®¸¦ ½Ã½ºÅÛ¿¡ ¸Â°Ô º¯°æÇϰí Àû´çÇÑ °÷¿¡ ±× ÇÁ·Î±×·¥µéÀ» ÀνºÅçÇÑ´Ù. Ãß°¡·Î, ÀÌ ¹®¼­ÀÇ HTML ¹öÀüÀ̳ª HTMLÅ×½ºÆ® ¹®¼­¸¦ ¿øÇÑ´Ù¸é,´ë½Å make all À» ½ÇÇàÇ϶ó. 2.5 ÀνºÅç Å×½ºÆ®Çغ¸±â ¹èÆ÷ÆÇÀ¸·ÎºÎÅÍ ÀνºÅçµÈ °ÍÀº javacgitest.html , javaemailtest.html , javahtmltest.html À̶õ HTML¹®¼­µéÀÌ´Ù. ¾Õ¿¡¼­ ¾²¿©Áø ±×´ë·Î ¸ðµÎ ÀνºÅç Çß´Ù¸é, 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. ÀÚ¹Ù CGI ÇÁ·Î±×·¥À» ½ÇÇàÇϱâ À§ÇØ ¼­¹ö ¼Â¾÷Çϱâ (¿ä¾à) * ftp://www.orbits.com/pub/software/java_cgi-0.4.tgz·ÎºÎÅÍ Java CGI ÆÐŰÁö¸¦ ¹Þ¾Æ¶ó (¹öÀü ¼ýÀÚ´Â ¹Ù²î¾úÀ»Áöµµ ¸ð¸¥´Ù.) * ÀÌ ¹èÆ÷ÆÇÀ» ´ÙÀ½ÀÇ ¸í·É¾î·Î ¾ÐÃàÀ» Ç®¾î¶ó gzip -dc java_cgi-0.4.tgz | tar -xvf - (¸¸¾à ¹öÀüÀÇ ¼ýÀÚ°¡ ¹Ù²î¾ú´Ù¸é, Áö±ÝºÎÅÍ´Â ±× ¹èÆ÷ÆÇ ¾È¿¡ ÀÖ´Â ¼³¸íÀ» µû¸£¶ó) * »õ·ÎÀÌ »ý¼ºµÈ java_cgi-0.4 µð·ºÅ丮¿¡¼­ ½Ã½ºÅÛ¿¡ ¸Â°Ô MakefileÀ» ÆíÁýÇ϶ó. * root·Î½á make installÀ» ½ÇÇàÇ϶ó. ÀÌ ¸í·ÉÀÌ ÀÚ¹Ù ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇϰí, ¿©·¯ºÐÀÇ ½Ã½ºÅÛ¿¡ °ü·ÃµÈ Á¤º¸µéÀ» Àû¿ë(apply)½ÃŰ°í ´Ù¾çÇÑ ÆÄÀϵéÀ» ÀνºÅç ÇÑ´Ù. ¸¸¾à HTML·ÎµÈ ÀÌ ¹®¼­¿Í HTMLÅ×½ºÆ® ¹®¼­¸¦ ¿øÇϸé, ´ë½Å make allÀ» ½ÇÇàÇ϶ó. * ½ÇÇà½Ãų Áغñ°¡ µÇ¾úÀ» °ÍÀÌ´Ù. 4. Java CGI ÇÁ·Î±×·¥ ½ÇÇà½Ã۱â 4.1. CGI ¸ðµ¨¿¡¼­ ÀÚ¹Ù ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀ» ¸·´Â Àå¾Ö¹° À¥ ¼­¹ö¿¡¼­ ÀÚ¹Ù ÇÁ·Î±×·¥À» ½ÇÇà½Ã۴µ¥ À־ µÎ °¡Áö ¹®Á¦Á¡ÀÌ ÀÖ´Ù: 4.1.1. ÀÚ¹Ù ÇÁ·Î±×·¥À» º¸Åë ½ÇÇàÆÄÀÏ Ã³·³ ½ÇÇà½Ãų ¼ö ¾ø´Ù. Ä¿¸àµå ¶óÀλ󿡼­ ÀÚ¹Ù ·±Å¸ÀÓ ÀÎÅÍÇÁ¸®Å͸¦ ½ÇÇàÇϰí (ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÉ ¼ö ÀÖµµ·Ï) ÃʱâÈ­ Ŭ·¡½º¸¦ Àû¾îÁÖ¾î¾ß ÇÑ´Ù. HTML ÇüÅ·δ Ŀ¸àµå ¶óÀÎÀ» À¥ ¼­¹ö¿¡ º¸³¾ ¼ö ¾ø´Ù. 4.1.2. Àڹٴ ȯ°æ(environment)¿¡ ´ëÇÑ ÀϹÝÀûÀÎ ¾×¼¼½º¸¦ ÇÏÁö ¾Ê´Â´Ù. ÀÚ¹Ù ÇÁ·Î±×·¥ÀÌ ÇÊ¿ä·Î ÇÏ´Â °³°³ÀÇ È¯°æº¯¼ö´Â Á¤È®ÀÌ ³Ñ°ÜÁ®¾ß ÇÑ´Ù. C ¿¡¼­ÀÇ getenv() ÇÔ¼ö °°Àº ¸Þ¼Òµå´Â ¾ø´Ù. 4.2. Java CGIÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¶§ÀÇ ¹®Á¦Á¡ ±Øº¹ À§ÀÇ µÎ Àå¾Ö¹°À» ó¸®Çϱâ À§ÇØ, º»ÀÎÀº ÀÚ¹Ù ÀÎÅÍÇÁ¸®ÅÍ¿¡°Ô ÇÊ¿äÇÑ Á¤º¸¸¦ ÁÖ´Â ½© CGIÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿´´Ù. 4.2.1. java.cgi ½ºÅ©¸³Æ® ÀÌ ½© ½ºÅ©¸³Æ®´Â ¿©·¯ºÐÀÌ »ç¿ëÇϰíÀÚ ÇÏ´Â Java CGIÇÁ·Î±×·¥°ú HTTPµ¥¸ó »çÀÌÀÇ »óÈ£ÀÛ¿ë(interaction)À» ´ã´çÇϸç, ½ÇÇàµÇ±â¸¦ ¿øÇÏ´Â ÇÁ·Î±×·¥ÀÇ À̸§À» ¼­¹ö°¡ Á¦°øÇÏ´Â µ¥ÀÌŸ·ÎºÎÅÍ »Ì¾Æ³»°í, Àӽà ÆÄÀÏ¿¡ ȯ°æ µ¥ÀÌŸ(environment data)¸¦ ¸ðµÎ ¸ðÀº´Ù. ±×¸®°í ¸í·É¾î ÁÙ¿¡ µ¡ºÙ¿©Áø ȯ°æ Á¤º¸ ÆÄÀÏÀÇ À̸§°ú Ä¿¸àµå ¶óÀο¡ µ¡ºÙ¿©Áø ÆÄÀÏ À̸§À» °¡Áö°í ÇÁ·ÎÀÚ¹Ù ·±Å¸ÀÓ ÀÎÅÍÇÁ¸®Å͸¦ ½ÇÇà½ÃŲ´Ù. Java.cgi ½ºÅ©¸³Æ®´Â "¿©·¯ºÐÀÇ Áö¿ª ÆÐ½º(Local Path)¿¡ °üÇÑ ¹æÄ§À» Á¤Ç϶ó "¿¡¼­ ±¸¼ºµÇ¾ú°í(configured) ÀνºÅçµÇ¾ú´Ù. 4.2.2. HTML formÀ¸·Î ºÎÅÍ java.cgi È£ÃâÇϱâ Java CGI ÇÁ·Î±×·¥À» »ç¿ëÇÏ´Â ÀúÀÚÀÇ ÆûÀº ´ÙÀ½°ú °°ÀÌ form actionÀ» ¸í½ÃÇÑ´Ù.
/cgi-bin/ Àº ¿©·¯ºÐÀÇ CGI ¹ÙÀ̳ʸ® µð·ºÅ丮À̸ç, java.cgi´Â À¥»ó¿¡¼­ ÀÚ¹Ù ÇÁ·Î±×·¥À» ½ÇÇà½ÃŰ°Ô ÇØÁÖ´Â ÀÚ¹Ù front-end À̸ç, CGI_Test´Â ½ÇÇà½Ãų ÀÚ¹Ù ÇÁ·Î±×·¥ÀÇ À̸§ Áß ÇÑ ¿¹Á¦ÀÌ´Ù. 5. Java CGIŬ·¡½ºµé »ç¿ëÇϱâ ÇöÀç·Î½á´Â "CGI" , "Email" , "HTML" À̶ó´Â ¼¼ °³ÀÇ ¸ÞÀΠŬ·¡½º°¡ Á¦°øµÈ´Ù. º»ÀÎÀº MIMEÇüÅÂÀÇ ÀÔÃâ·ÂÀ» ´Ù·ç´Â °¢°¢ MIMEin °ú MIMEout À̶ó´Â Ŭ·¡½º¸¦ Ãß°¡ ÇÒ »ý°¢ ÁßÀÌ´Ù. Áö¿ø¿ë(support) Ŭ·¡½º¿Í Å×½ºÆ® Ŭ·¡½ºµµ ¸î °³ ÀÖ´Ù. " 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 Å×ÀÌŸ¸¦ °¡Áø °³Ã¼¸¦ »ý¼º(construct)ÇÑ´Ù. ¹®¹ý public CGI ( ) ¼³¸í CGI °³Ã¼°¡ »ý¼º µÇ¾úÀ» ¶§, ¸ðµç »ç¿ë °¡´ÉÇÑ CGIÁ¤º¸°¡ ±× °³Ã¼¿¡ ´ëÇØ local ÀÎ storage·Î º¸³»Áø´Ù. 5.1.6. getNames() ¸ñÀû ÇØ´çÇÏ´Â value¸¦ °®µµ·Ï Á¤ÀÇµÈ nameµéÀ» ¸®½ºÆ® ÇÑ´Ù. ¹®¹ý public Enumeration getKeys () ¼³¸í ÇØ´çÇÏ´Â value°¡ Á¤ÀÇµÈ nameÀÇ Àüü ¸®½ºÆ®¸¦ Á¦°øÇÑ´Ù. ¸®Åϰª Á¤ÀÇµÈ ¸ðµç À̸§ÀÇ EnumerationÇü 5.1.7. getValue() ¸ñÀû À̸§ÀÌ ¸í½ÃµÈ 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 ÇÁ·Î±×·¥¿¡ ´ëÇÑ ¿£Æ®¸® Æ÷ÀÎÆ®ÀÌ´Ù. ÆÄ¶ó¸ÞÅÍ 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() // e-mail ¸Þ½ÃÁö¸¦ º¸³½´Ù. sendTo() // ¸Þ½ÃÁö¿¡ ¸ñÀûÁö¸¦ Ãß°¡ÇÑ´Ù. Subject() // ¸Þ½ÃÁö¿¡ ÁÖÁ¦(Subject: )¸¦ Á¤ÇÑ´Ù. --------------------------------------------------------------------------- 5.3.4. ÂüÁ¶ Email_Test, Text. 5.3.5. Email () ¸ñÀû email ¸Þ½ÃÁö¸¦ °¡Áú °³Ã¼¸¦ »ý¼ºÇÑ´Ù. ¹®¹ý public Email() ¼³¸í Email ¸Þ¼Òµå·Î½á ¿Ï¼º µÉ ºó ¸Þ½ÃÁö¸¦ ¼Â¾÷ÇÑ´Ù. ÂüÁ¶ Text. 5.3.6. send() ¸ñÀû e-mail ¸Þ½ÃÁö¸¦ º¸³½´Ù. ¹®¹ý public void send () ¼³¸í ¸Þ½ÃÁö¸¦ Á¤ÇüÈ­(format)ÇÏ°í º¸³½´Ù. ¸ñÀûÁö°¡ Á¤ÇØÁöÁö ¾Ê¾ÒÀ¸¸é, ¾Æ¹« Àϵµ ÇÏÁö ¾Ê´Â´Ù. 5.3.7. sendTo() ¸ñÀû ¸Þ½ÃÁö¿¡ ¸ñÀûÁö¸¦ Ãß°¡ÇÑ´Ù. ¹®¹ý public String sendTo ( String address ) ¼³¸í ÀÌ ¸Þ¼ÒµåÀÇ ¸ñÀûÁö ¸®½ºÆ®¿¡ ÁÖ¼Ò(address)¸¦ Ãß°¡ÇÑ´Ù. e-mail ¸Þ½ÃÁö°¡ °¡Áú ¼ö ÀÖ´Â ¸ñÀûÁöÀÇ ¼ö¿¡´Â Á¤ÇØÁø ÇѰ谡 ¾ø´Ù. ¸®½ºÆ®ÀÇ Å©±â¸¦ ÃæºÐÈ÷ Å©°Ô ¸¸µç´Ù¸é(build up), Mail Transport Agent °¡ ¹Þ¾ÆµéÀÏ ¼ö Àְųª ¸Þ¸ð¸®¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â ÆÄ¶ó¸ÞÅÍ ¸®½ºÆ®ÀÇ »çÀÌÁ ÃʰúÇÒ ¼ö ÀÖ´Ù. ÆÄ¶ó¸ÞÅÍ address ÀÌ ¸Þ½ÃÁö¸¦ º¸³¾ ¸ñÀûÁö 5.3.8. subject() ¸ñÀû ÀÌ ¸Þ½ÃÁöÀÇ ÁÖÁ¦¸¦ Á¤ÇÑ´Ù. ¹®¹ý public void subject ( Sting subject ) ¼³¸í e-mailÀÇ Subject: ÁÙÀÇ ÅØ½ºÆ®¸¦ Á¤ÇÑ´Ù. ¸¸¾à Çѹø ÀÌ»ó callµÇ¸é, ¸Ç ¸¶Áö¸·ÀÇ 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 ÇÁ·Î±×·¥¿¡ ´ëÇÑ ¿£Æ®¸® Æ÷ÀÎÆ®ÀÌ´Ù. Email º¯¼ö¿¡ ¸í½ÃµÈ ÁÖ¼Ò(address)¿¡µµ ÀÌ ¸®½ºÆ®¸¦ º¸³½´Ù. ÆÄ¶ó¸ÞÅÍ 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() ¸ñÀû ÀúÀÚÀÇ À̸§À» Á¤ÇÑ´Ù. ¹®¹ý public void author ( String author ) ¼³¸í author·Î ÀúÀÚÀÇ À̸§À» Á¤ÇÑ´Ù. ÆÄ¶ó¸ÞÅÍ author ¸Þ½ÃÁöÀÇ ÀúÀÚÀ̸§À¸·Î »ç¿ëÇÒ ÅØ½ºÆ® ÂüÁ¶ title() . 5.5.7. definitionList() ¸ñÀû Á¤ÀÇ(definition) ¸®½ºÆ®¸¦ ½ÃÀÛÇÑ´Ù. ¹®¹ý public void definitionList() ¼³¸í Á¤ÀÇ ¸®½ºÆ®¸¦ ½ÃÀÛÇÑ´Ù. Á¤ÀÇ ¸®½ºÆ®´Â ¸®½ºÆ® ¾ÈÀÇ °¢°¢ÀÇ ¿£Æ®¸®°¡ ±× Ç׸ñ(term)ÀÇ Á¤ÀÇ ÅØ½ºÆ®(definition text) ´ÙÀ½¿¡ ³ª¿À´Â Ç׸ñÀÎ ¸®½ºÆ®ÀÌ´Ù. Á¤ÀÇ ¸®½ºÆ®ÀÇ ½ÃÀÛÀº (ÃÖ¼ÒÇÑ) ÇϳªÀÇ term/text ½ÖÀ» »ý¼ºÇÑ ÀÌÈÄ, ±×¸®°í endList() ¸Þ¼Òµå°¡ Çѹø callµÈ ÀÌÈÄ À̾î¾ß ÇÑ´Ù. ÇöÀç, ¸®½ºÆ®´Â nest µÉ ¼ö ¾ø´Ù´Â °ÍÀ» ÁÖ¸ñÇ϶ó. ÂüÁ¶ definitionListTerm(), endList(), listItem() . 5.5.8. definitionListTerm() ¸ñÀû Á¤ÀÇ ¸®½ºÆ®¿¡ ¸ñ·ÏÀ» Ãß°¡ÇÑ´Ù. ¹®¹ý public void definitionListTerm() ¼³¸í Á¤ÀÇ ¸®½ºÆ®¿¡ Ç׸ñ(term)À» Ãß°¡ÇÑ´Ù. ÇöÀç ¸®½ºÆ® ¿£Æ®¸®ÀÇ Ç׸ñºÎºÐÀÇ ÅØ½ºÆ®´Â ÀÌ ¸Þ¼Òµå°¡ callµÈ ´ÙÀ½¿¡ ±×¸®°í ÇØ´çµÇ´Â listItem¸Þ¼Òµå°¡ call µÇ±â Àü¿¡ ¸Þ½ÃÁö¿¡ µ¡ºÙ¿©Á®¾ß(appended) ÇÑ´Ù. ÂüÁ¶ definitionList(), listItem(). 5.5.9. endList() ¸ñÀû ¸®½ºÆ®¸¦ ³¡³½´Ù. ¹®¹ý public void endList() ¼³¸í ¸®½ºÆ®¸¦ ³¡³½´Ù. ÀÌ ¸Þ¼Òµå´Â ¸®½ºÆ®¸¦ ¸Î´Â´Ù(close out). ÇöÀç ¸®½ºÆ®´Â nest µÉ ¼ö ¾øÀ½À» ÁÖ¸ñÇ϶ó. ÂüÁ¶ definitionList() 5.5.10. listItem() ¸ñÀû ¸®½ºÆ®¿¡ ¿£Æ®¸®¸¦ Ãß°¡ÇÑ´Ù. ¹®¹ý public void listItem() public void listItem(String item) public void listItem(String term, String item) ¼³¸í ¸®½ºÆ®¿¡ ¿£Æ®¸®¸¦ Ãß°¡ÇÑ´Ù. ¸¸¾à ù¹øÂ°¸¦ »ç¿ëÇÑ´Ù¸é ÇöÀç ¸®½ºÆ® ¾ÆÀÌÅÛÀÇ ÅØ½ºÆ®´Â, ÀÌ ¸Þ¼Òµå°¡ callµÈ ´ÙÀ½¿¡ ±×¸®°í ´Ù¸¥ ¸®½ºÆ® ¸Þ¼Òµå°¡ callµÇ±â Àü¿¡ ¸Þ½ÃÁö¿¡ ºÙ¿©Á®¾ß ÇÑ´Ù. µÎ¹øÂ°¿Í ¼¼¹øÂ°¿¡¼­, ¾ÆÀÌÅÛ ÅØ½ºÆ®´Â ÀÌ ¸Þ½ÃÁö¿¡ µ¡ºÙ¿©Áö´Â ´ë½Å¿¡(ȤÀº Ãß°¡·Î) ¸Þ¼ÒµåÀÇ ÆÄ¶ó¸ÞÅÍ·Î½á ¸í½ÃµÈ´Ù.¼¼¹øÂ°´Â Á¤ÀÇ ¸®½ºÆ®¿¡ specificÇϰí, term°ú ¸®½ºÆ® ¿£Æ®¸®ÀÇ Á¤ÀǸ¦ Á¦°øÇÑ´Ù. ÆÄ¶ó¸ÞÅÍ item ¸®½ºÆ® ¿£Æ®¸®ÀÇ ÅØ½ºÆ® term Á¤ÀÇ ¸®½ºÆ® ¿£Æ®¸®ÀÇ Ç׸ñ(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 ÀÌ Å¬·¡½º¿¡´Â CGIŬ·¡½º¸¦ ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö¿¡ °üÇÑ ¿¹Á¦¿Í 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() // °èÇà(line break)À» Ãß°¡ÇÑ´Ù. addParagraph() // ¹®´Ü°èÇà(paragraph break)À» Ãß°¡ÇÑ´Ù. ---------------------------------------------------------------------- 5.7.4. ÂüÁ¶ Email, HTML. 5.7.5. add() ¸ñÀû ÀÌ ¾ÆÀÌÅÛ¿¡ ÅØ½ºÆ®¸¦ Ãß°¡ÇÑ´Ù. ¹®¹ý public void add ( char addtion ) public void add ( char addtion ) public void add ( StringBuffer addition ) ¼³¸í ÀÌ ÅØ½ºÆ® ¾ÆÀÌÅÛÀÇ ³»¿ë¿¡ addtionÀ» Ãß°¡ÇÑ´Ù. ÆÄ¶ó¸ÞÅÍ addtion ÅØ½ºÆ® ¾ÆÀÌÅÛ¿¡ Ãß°¡µÉ ÅØ½ºÆ®. ÂüÁ¶ addLineBreak() , addParagraph(). 5.7.6. addLineBreak() ¸ñÀû ÅØ½ºÆ®ÀÇ ÀÌ ÁöÁ¡¿¡¼­ °èÇà½ÃŲ´Ù. ¹®¹ý public void addLineBreak () ¼³¸í ÀÌ ÁöÁ¡¿¡¼­ ÅØ½ºÆ®¿¡ °èÇàÀ» ÇÑ´Ù. ÂüÁ¶ add() , addParagraph(). 5.7.7. addParagraph() ¸ñÀû »õ ¹®´ÜÀ» ½ÃÀÛÇÑ´Ù. ¹®¹ý public void add () ¼³¸í ÅØ½ºÆ®ÀÇ ÀÌ ÁöÁ¡¿¡ »õ ¹®´ÜÀ» ½ÃÀÛÇÑ´Ù. ÂüÁ¶ add() , addLineBreak(). 6. ÇâÈÄ °èȹ * Email Ŭ·¡½º¿¡ Ãß°¡ÇÒ °Í: Email ( int capacity ) ¸Þ½ÃÁö°¡ ÇÒ´çµÇ±â À§Çؼ­ ¾ó¸¶³ª ¸¹Àº °ø°£ÀÌ ÇÊ¿äÇÑÁö ¾Ë°í ÀÖÀ» ¶§ »ç¿ë. SendTo( String address ) e-mail¸Þ½ÃÁö¿¡ ÁÖ ¸ñÀûÁö(primary destinations) ¸®½ºÆ®¸¦ Ãß°¡ÇÑ´Ù. SendCc ( String address ) e-mail ¸Þ½ÃÁö¿¡ Carbon-Copy ¸ñÀûÁö¸¦ Ãß°¡ÇÑ´Ù. SendCc ( String address ) e-mail ¸Þ½ÃÁö¿¡ Carbon-Copy ¸ñÀûÁöÀÇ ¸®½ºÆ®¸¦ Ãß°¡ÇÑ´Ù. sendBcc( String address ) e-mail ¸Þ½ÃÁö¿¡ Blind Carbon-Copy ¸ñÀûÁöÀÇ ¸®½ºÆ®¸¦ Ãß°¡ÇÑ´Ù. * HTML Ŭ·¡½º¿¡ Ãß°¡ÇÒ °Í: HTML( int capacity ) ¸Þ½ÃÁö°¡ ÇÒ´çµÇ±â À§Çؼ­ ¾ó¸¶³ª ¸¹Àº °ø°£ÀÌ ÇÊ¿äÇÑÁö ¾Ë ¶§ »ç¿ë. public void unorderedList() Á¤·ÄµÇÁö ¾ÊÀº ¸®½ºÆ®¸¦ ½ÃÀÛÇÑ´Ù. public void orderedList() Á¤·ÄµÈ ¸®½ºÆ®¸¦ ½ÃÀÛÇÑ´Ù. public void directoryList() µð·ºÅ丮 ¸®½ºÆ®¸¦ ½ÃÀÛÇÑ´Ù. public void manuList() ¸Þ´º ¸®½ºÆ®¸¦ ½ÃÀÛÇÑ´Ù. void anchor (String anchorName ) anchor¸¦ ¸í½ÃÇÑ´Ù. void link (String url, String text) link¸¦ ¸í½ÃÇÑ´Ù. void applet(String url, String altText) ¾ÖÇø´ link¸¦ ¸í½ÃÇÑ´Ù. * HTML ¸®½ºÆ®°¡ nestµÇ°Ô ÇÑ´Ù. * HTML ¸®½ºÆ® formattingÄÚµåÀÇ ¿Ã¹Ù¸¥ Á¤·ÄÀ» ¼öÇàÇÒ ¿¡·¯ üŷ Äڵ带 Ãß°¡ÇÑ´Ù. * Makefile¿¡¼­ ȯ°æ µ¥ÀÌŸ ÆÄÀÏÀÇ À§Ä¡¸¦ Á¶Á¤(configurable)ÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. * µ¥ÀÌŸ Àü¼ÛÀÎ GET¸Þ¼Òµå¸¦ »ç¿ëÇÒ ¶§ ¸®½ºÆ®¿¡¼­ ³ªÅ¸³ª´Â ºó name/value ½ÖÀ» ¾ø¾Ø´Ù. * °è¼ÓÇØ¼­ º¯¼ö À̸§À» Á¦°øÇÒ ajva.util.Enumeration interfaceÀÇ CGI·ÎÀÇ ±¸ÇöÀ» »ý°¢Áß. * ÀÌ ÆÐŰÁö¿¡ ÀÖ´Â ¸ðµç ¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â, Test Ŭ·¡½º¸¦ Ãß°¡ÇÑ´Ù. * µð¹ö±ë ¸ñÀûÀ¸·Î Á¡ÁøÀûÀÎ Å×½ºÆ®¸¦ Çϱâ À§ÇØ CGI_Test,Email_Test, HTML_Test ¼­·Î°¡ ¾î¶»°Ô build µÇ´ÂÁö ¹®¼­È­ÇÑ´Ù. * ¾î¶»°Ô Test°¡ ÀÌ ÆÐŰÁö¿¡¼­ °¡´ÉÇÑ ¸ðµç ±â´ÉÀ» ÀÌ¿ëÇÏ´ÂÁö ¹®¼­È­ÇÑ´Ù. 7. º¯È­ 7.1. ¹öÀü 0.3 °ú 0.4 °£ÀÇ º¯È­ * ÃÖ¼ÒÇÑÀÇ ±â´ÉÀ» Á¦°øÇÏ´Â HTML Ŭ·¡½ºÀÇ °ñÀÚ ¹èÆ÷. * HTML_Test Ŭ·¡½º¿Í javahtmltest.html-dist ÀÛ¼º. * Á¤ÀÇ ¸®½ºÆ®¸¦ ´Ù·ç±â À§ÇÑ HTML ¸Þ¼Òµå¸¦ Ãß°¡. 7.2. ¹öÀü 0.2 ¿Í 0.3 °£ÀÇ º¯È­ * Text ¿Í Email Ŭ·¡½º¸¦ Ãß°¡. HTML Ŭ·¡½ºµµ Ãß°¡µÇ¾úÀ¸³ª, ÀÌ ½Ã±â¿¡´Â ½ÃÀÛ Á¤µµ ¿´À½. * ÆÐŰÁö¿¡ ´Ù¾çÇÑ Å¬·¡½º¸¦ ³ÖÀ½. ÁÖµÈ Å¬·¡½º´Â Orbits.net.*¾È¿¡ ÀÖÀ½, Áö¿ø(support) Ŭ·¡½º Text´Â Orbits.text.Text¾È¿¡ ÀÖÀ½. * CGItest °¡ CGI_Test ·Î ¹Ù²ñ. * Email_TestŬ·¡½º Ãß°¡. 7.3. ¹öÀü 0.1 °ú 0.2 °£ÀÇ º¯È­ * ȯ°æº¯¼ö¸¦ ÀÚ¹Ù ÀÎÅÍÇÁ¸®ÅÍÀÇ Ä¿¸àµå ¶óÀÎ ¾È¿¡ ³Ö´Â ´ë½Å¿¡ Àӽà ÆÄÀÏ¿¡ ³õÀÓ. CGI Ŭ·¡½º¿Í java.cgi°¡ º¯ÇßÀ½. * Javacgitest.html ¹®¼­°¡ ¹èÆ÷ÆÇ¿¡ Æ÷ÇÔµÊ. * ÀνºÅç °úÁ¤ÀÇ make¿¡ ÀÇÇØ ¼öÁ¤µÈ ÅØ½ºÆ® ÆÄÀÏ¿¡ -dist·Î ³¡³ª´Â À̸§À» ºÙÀÓ.