ÇöÀç ¼¼°³ÀÇ ¸ÞÀΠŬ·¡½º°¡ Á¦°øµÈ´Ù. CGI¿Í Email°ú HTMLÀÌ´Ù. ÇÊÀÚ´Â MIME ÇüÅÂÀÇ ÀÔÃâ·ÂÀ» ´Ù·ç´Â °¢°¢ÀÇ Å¬·¡½º- MIMEin °ú MIMEout - ¸¦ Ãß°¡ÇÒ »ý°¢ÀÌ´Ù.
Áö¿ø¿ëŬ·¡½º¿Í Å×½ºÆ® Ŭ·¡½ºµµ ¸î °³ ÀÖ´Ù.  
CGI_Test,
Email_Test ¿Í
HTML_Test´Â ÀνºÅçÀ» Å×½ºÆ®Çϱâ À§ÇÑ °ÍÀÌ´Ù.
À̵é Ŭ·¡½º´Â ÀÌ Å¬·¡½º ¶óÀ̺귯¸®´Â »ç¿ëÇÏ´Â ÀÚ¹Ù ÇÁ·Î±×·¥¿¡¼ ½ÃÀÛÁ¡(starting-
point)ó·³ »ç¿ëµÉ ¼öµµ ÀÖÀ»°ÍÀÌ´Ù.  
Text Ŭ·¡½º´Â 
Email ¿Í HTML Ŭ·¡½ºÀÇ ¼öÆÛŬ·¡½ºÀÌ´Ù.  
public class CGI
CGI Ŭ·¡½º´Â "CGI Á¤º¸" (À¥ ¼¹ö°¡ Á¤ÇÑ È¯°æ º¯¼öµé°ú submit µ¿ÀÛÀÌ 
¼±ÅõǾúÀ» ¶§ formÀ¸·ÎºÎÅÍ º¸³½ name/value)¸¦ °¡Áø´Ù.  ¸ðµç Á¤º¸´Â 
Properties Ŭ·¡½º °´Ã¼¿¡ ÀúÀåµÈ´Ù. 
ÀÌ Å¬·¡½º´Â "Orbits.net" ÆÐŰÁö¿¡ µé¾îÀÖ´Ù. 
        CGI()         //  »ý¼ºÀÚ.
        getNames()    //  À̸§µéÀÇ ¸®½ºÆ®¸¦ ¾ò´Â´Ù.
        getValue()    //  À̸§À» ¸í½ÃÇÔÀ¸·Î½á formÀÇ value¸¦ ¾ò´Â´Ù.
CGI_Test.
»ç¿ë °¡´ÉÇÑ CGI Å×ÀÌŸ¸¦ °¡Áø °´Ã¼¸¦ »ý¼ºÇÑ´Ù.
public CGI()
CGI °´Ã¼°¡ »ý¼º µÇ¾úÀ» ¶§, ¸ðµç »ç¿ë °¡´ÉÇÑ CGIÁ¤º¸°¡ ±× °´Ã¼¿¡ ´ëÇØ ·ÎÄÃÀÎ ÀúÀå¼Ò·Î º¸³»Áø´Ù.
ÇØ´çÇÏ´Â value¸¦ °®µµ·Ï Á¤ÀÇµÈ nameµéÀ» º¸ÀδÙ.
public Enumeration getKeys ()
ÇØ´çÇÏ´Â value°¡ Á¤ÀÇµÈ nameÀÇ Àüü ¸®½ºÆ®¸¦ Á¦°øÇÑ´Ù.
Á¤ÀÇµÈ ¸ðµç À̸§ÀÇ Enumeration 
nameÀÌ ¸í½ÃµÈ value¸¦ ÃëÇÑ´Ù.
public String getValue ( String name )
HTML formÀ¸·ÎºÎÅÍ º¸³»Áø name°ú value»çÀÌ¿¡ ´ëÀÀÇÏ´Â °ÍÀ» ¸®ÅÏÇÔ. 
value¸¦ ¼±ÅÃÇϴ Ű
value¸¦ ´ã°í ÀÖ´Â String 
ÀÌ Å¬·¡½º¿¡´Â CGIŬ·¡½º¸¦ ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö¿¡ °üÇÑ ¿¹Á¦¿Í Java CGI
ÆÐŰÁö°¡ Á¤È®ÇÏ°Ô µ¿ÀÛÇÏ´ÂÁö È®ÀÎÇϴµ¥ »ç¿ëµÇ´Â Å×½ºÆ® ÇÁ·Î±×·¥ÀÌ µé¾î
ÀÖ´Ù.
        main()      //  ÇÁ·Î±×·¥ main().
CGI.
main() ¸Þ¼Òµå¸¦ Á¦°øÇÑ´Ù.
public static void main( String argv[] )
»ç¿ë °¡´ÉÇÑ name/value ½ÖÀÇ ¸®½ºÆ®¿Í ÇöÀç °ªÀ» ¸®ÅÏÇÏ´Â CGI ÇÁ·Î±×·¥¿¡ ´ëÇÑ ÁøÀÔÁ¡(entry point)ÀÌ´Ù.
java.cgi ½ºÅ©¸³Æ®¿¡ ÀÇÇØ ÇÁ·Î±×·¥¿¡ Àü´ÞµÇ´Â ÀÎÀÚµé.
ÇöÀç »ç¿ë ¾ÈÇÔ
public class Email extends Text
¸Þ½ÃÁö´Â TextŬ·¡½ºÀÇ add* () ¸Þ¼Òµå¿Í ÀÌ Å¬·¡½º¿¡ ÀÇÇØ Ãß°¡µÈ e-mail
°ü·Ã(e-mail-specific) ¸Þ¼Òµå·Î ¸¸µé¾îÁø´Ù. ´Ù ¸¶Ä¡¸é, ¸Þ½ÃÁö´Â ¸ñÀûÁö·Î 
º¸³»Áø´Ù.
ÀÌ Å¬·¡½º´Â "Orbits.net"ÆÐŰÁö¿¡ µé¾îÀÖ´Ù.
        Email()      //  »ý¼ºÀÚ.
        send()       //  ÀüÀÚ¸ÞÀÏ ¸Þ½ÃÁö¸¦ º¸³½´Ù.
        sendTo()     //  ¸Þ½ÃÁö¿¡ ¸ñÀûÁö¸¦ Ãß°¡ÇÑ´Ù.
        subject()    //  ¸ÞÁöÁö¿¡ ÁÖÁ¦(Subject:)¸¦ Á¤ÇÑ´Ù.
Email_Test, Text.
ÀüÀÚ¸ÞÀÏ ¸Þ½ÃÁö¸¦ ´ãÀº °³Ã¼¸¦ »ý¼ºÇÑ´Ù.
public Email()
Email¸Þ¼Òµå·Î¼ ¿Ï¼º(complete)µÉ ºó ¸Þ½ÃÁö¸¦ ¼Â¾÷ÇÑ´Ù.
Text.
ÀüÀÚ¸ÞÀÏ ¸Þ½Ã½Ã¸¦ º¸³½´Ù.
public void send ()
¸ÞÁö½Ã¸¦ Á¤ÇüÈ(format)ÇÏ°í º¸³½´Ù. ¸ñÀûÁö°¡ Á¤ÇØÁöÁö ¾Ê¾ÒÀ¸¸é, ¾Æ¹« Àϵµ ¹ß»ýÇÏÁö ¾Ê´Â´Ù.
¸Þ½ÃÁö¿¡ ¸ñÀûÁö¸¦ Ãß°¡ÇÑ´Ù.
public String sendTo ( String address )
ÀÌ ¸Þ¼ÒµåÀÇ ¸ñÀûÁö ¸®½ºÆ®¿¡  ÁÖ¼Ò ¸¦ Ãß°¡ÇÑ´Ù.
ÀüÀÚ¸ÞÀÏ ¸Þ½ÃÁö°¡ °¡Áú ¼ö ÀÖ´Â ¸ñÀûÁöÀÇ ¼ö¿¡´Â Á¤ÇØÁø ÇѰ谡 ¾ø´Ù. 
¸®½ºÆ®ÀÇ Å©±â¸¦ ÃæºÐÈ÷ Å©°Ô ¸¸µç´Ù¸é, ¸ÞÀÏ Àü¼Û ¿¡ÀÌÀüÆ®(Mail Transport Agent) °¡ 
Çã¿ëÇÒ ¼ö ÀÖ´Â ÆÄ¶ó¸ÞÅÍ ¸®½ºÆ®ÀÇ »çÀÌÁ ÃʰúÇÒ ¼ö ÀÖÀ¸¸ç ±×·¸Áö ¾Ê´Ù¸é ¸Þ¸ð¸®¸¦ ´Ù ½á¹ö¸± °ÍÀÌ´Ù.
¸Þ½ÃÁö¸¦ º¸³¾ ¸ñÀûÁö.
¸Þ½ÃÁöÀÇ ÁÖÁ¦¸¦ Á¤ÇÑ´Ù.
public void subject ( String subject )
ÀüÀÚ¸ÞÀÏÀÇ Subject: ÁÙÀÇ ÅØ½ºÆ®¸¦ Á¤ÇÑ´Ù. ¸¸¾à Çѹø ÀÌ»ó È£ÃâµÇ¸é, ¸Ç
¸¶Áö¸·¿¡ Á¤ÇÑ subject°¡ »ç¿ëµÈ´Ù.
¸Þ½ÃÁöÀÇ  Subject: ÁÙÀÇ ÅØ½ºÆ®
ÀÌ Å¬·¡½º´Â Email Ŭ·¡½º¸¦ ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö¿¡ °üÇÑ ¿¹Á¦¿Í Java CGI
ÆÐŰÁö°¡ Á¤È®ÇÏ°Ô µ¿ÀÛÇÏ´ÂÁö È®ÀÎÇϴµ¥ »ç¿ëµÇ´Â Å×½ºÆ® ÇÁ·Î±×·¥ ¿¹Á¦°¡ µé¾îÀÖ´Ù.
        main()      //  ÇÁ·Î±×·¥ main().
Email.
main() ¸Þ¼Òµå¸¦ Á¦°øÇÑ´Ù.
public static void main( String argv[] )
»ç¿ë °¡´ÉÇÑ name/value ½Ö°ú ÇöÀç ±× ½ÖÀÇ ¸®½ºÆ®¸¦ ¸®ÅÏÇÏ´Â CGI ÇÁ·Î±×·¥¿¡
´ëÇÑ ÁøÀÔÁ¡(entry point)ÀÌ´Ù.  Email º¯¼ö¿¡ ¸í½ÃµÈ ÁÖ¼Ò¿¡µµ 
ÀÌ ¸®½ºÆ®¸¦ º¸³½´Ù.
java.cgi ½ºÅ©¸³Æ®¿¡ ÀÇÇØ ÇÁ·Î±×·¥¿¡ Àü´ÞµÇ´Â ÀÎÀÚµé.
ÇöÀç »ç¿ë ¾ÈÇÔ.
public class HTML extends Text
¸Þ½ÃÁö´Â TextŬ·¡½ºÀÇ add* () ¸Þ¼Òµå¿Í ÀÌ Å¬·¡½º¿¡ ÀÇÇØ Ãß°¡µÈ HTML°ü·Ã(HTML-specific) ¸Þ¼Òµå·Î
¸¸µé¾îÁø´Ù. ¿Ï¼ºµÇ¸é, ¸Þ½ÃÁö´Â ¸ñÀûÁö·Î º¸³»Áø´Ù.
ÇöÀç, ¸®½ºÆ®¸¦ ¸¸µå´Â ¸Þ¼ÒµåµéÀÌ Á¤È®ÇÑ ¼ø¼·Î »ç¿ëµÇ¾ú´ÂÁö È®½ÅÇÒ ¿¡·¯
üŷÀ» ÇÏÁö ¾Ê¾Æ¼, ÇÁ·Î±×·¡¸Ó°¡ HTML ¹®¹ýÀ» ¾î±âÁö ¾Êµµ·Ï ÁÖÀÇÇØ¾ß ÇÑ´Ù.
ÀÌ Å¬·¡½º´Â "Orbits.net"ÆÐŰÁö¿¡ µé¾îÀÖ´Ù.
        HTML()                  //  »ý¼ºÀÚ.
        author()                //  ¹®¼ ÀúÀÚÀÇ À̸§À» Á¤ÇÑ´Ù.
        definitionList()        //  Á¤ÀÇ ¸®½ºÆ®¸¦ ½ÃÀÛÇÑ´Ù.
        definitionListTerm()    //  Á¤ÀÇ ¸®½ºÆ®¿¡ ¿ë¾î(term)¸¦ Ãß°¡ÇÑ´Ù.
        endList()               //  ¸®½ºÆ®¸¦ ³¡¸Î´Â´Ù.
        listItem()              //  ¸®½ºÆ®¿¡ ¿£Æ®¸®¸¦ Ãß°¡ÇÑ´Ù.
        send()                  //  HTML¸Þ½ÃÁö¸¦ º¸³½´Ù.
        title()                 //  ¹®¼ Á¦¸ñ¿ë ÅØ½ºÅ©¸¦ Á¤ÇÑ´Ù.
HTML_Test, Text.
HTML¸Þ½ÃÁö¸¦ ´ãÀ» °´Ã¼¸¦ »ý¼ºÇÑ´Ù.
public HTML()
HTML ¸Þ¼Òµå¿¡ ÀÇÇØ¼ ¿Ï¼ºµÉ ºó ¸Þ½ÃÁö¸¦ ¸¸µç´Ù.
Text.
¹®Àú ÀúÀÚÀÇ À̸§À» Á¤ÇÑ´Ù.
public void author ( String author )
¹®¼ÀÇ ÀúÀÚ¸¦ author·Î Á¤ÇÑ´Ù.
¸Þ½ÃÁöÀÇ ÀúÀÚ·Î »ç¿ëµÉ ÅØ½ºÆ®.
title().
Á¤ÀÇ ¸®½ºÆ®¸¦ ½ÃÀÛÇÑ´Ù.
public void definitionList ()
Á¤ÀÇ ¸®½ºÆ®¸¦ ½ÃÀÛÇÑ´Ù.
Á¤ÀÇ ¸®½ºÆ®´Â ¸®½ºÆ® ¾ÈÀÇ °¢°¢ÀÇ ¿£Æ®¸®°¡ 
±× ¿ë¾î(term)ÀÇ Á¤ÀÇ ÅØ½ºÆ®(text)  ´ÙÀ½¿¡ ³ª¿À´Â Ç׸ñÀÎ 
¸®½ºÆ®ÀÌ´Ù. Á¤ÀÇ ¸®½ºÆ®ÀÇ ½ÃÀÛÀº (ÃÖ¼ÒÇÑ) ÇϳªÀÇ ¿ë¾î/ÅØ½ºÆ® ½ÖÀ» 
»ý¼ºÇϰí endList() ¸Þ¼Òµå°¡ Çѹø È£ÃâµÈ ÀÌÈÄ À̾î¾ß ÇÑ´Ù.
ÇöÀç ¸®½ºÆ®µéÀº ³×½ºÆ®(nest)µÉ ¼ö ¾øÀ½À» ÁÖÀÇÇ϶ó.
definitionListTerm(), endList(),
listItem().
Á¤ÀÇ ¸®½ºÆ®¿¡ ÇϳªÀÇ ¿ë¾î¸¦ Ãß°¡ÇÑ´Ù.
public void definitionListTerm ()
Á¤ÀÇ ¸®½ºÆ®¿¡ ÇϳªÀÇ ¿ë¾î¸¦ Ãß°¡ÇÑ´Ù.
Çö ¸®½ºÆ® ¿£Æ®¸®ÀÇ ¿ë¾î ºÎºÐÀÇ ÅØ½ºÆ®´Â ÀÌ ¸Þ¼Òµå°¡ È£ÃâµÇ°í ÇØ´çµÇ´Â listItem¸Þ¼Òµå°¡
È£ÃâµÇ±â Àü¿¡ ¸Þ½ÃÁö¿¡ µ¡ºÙ¿©Á®¾ß ÇÑ´Ù.
definitionList(), listItem().
¸®½ºÆ®¸¦ ³¡¸Î´Â´Ù.
public void endList ()
¸®½ºÆ®¸¦ ³¡¸Î´Â´Ù. ÀÌ ¸Þ¼Òµå´Â ÇÑ ¸®½ºÆ®¸¦ ³¡³½´Ù. ÇöÀç ¸®½ºÆ®µéÀº ³×½ºÆ®µÉ ¼ö ¾øÀ½À» ÁÖ¸ñÇ϶ó.
definitionList().
¸®½ºÆ®¿¡ ¿£Æ®¸® Çϳª¸¦ Ãß°¡ÇÑ´Ù.
public void listItem ()
public void listItem ( String item )
public boolean listItem ( String term, String item )
¸®½ºÆ®¿¡ ¿£Æ®¸® Çϳª¸¦ Ãß°¡ÇÑ´Ù.
¸¸¾à ù¹øÂ° Æû(form)ÀÌ »ç¿ëµÈ´Ù¸é, Çö ¸®½ºÆ® ¾ÆÀÌÅÛÀÇ ÅØ½ºÆ®´Â 
ÀÌ ¸Þ¼Òµå°¡ È£ÃâµÈ ´ÙÀ½¿¡ ±×¸®°í ´Ù¸¥ ¸®½ºÆ® ¸Þ¼Òµå°¡ È£ÃâµÇ±â Àü¿¡ 
¸Þ½ÃÁö¿¡ ºÙ¿©Á®¾ß ÇÑ´Ù. µÎ¹øÂ°¿Í ¼¼¹øÂ° Æû¿¡¼´Â, item ÅØ½ºÆ®´Â
ÀÌ ¸Þ½ÃÁö¿¡ µ¡ºÙ¿©Áö´Â ´ë½Å¿¡(ȤÀº Ãß°¡·Î) ¸Þ¼ÒµåÀÇ 
ÆÄ¶ó¸ÞÅÍ·Î½á ¸í½ÃµÈ´Ù.¼¼¹øÂ°´Â Á¤ÀÇ ¸®½ºÆ®¿¡ °ü·ÃµÇ°í(specific), ¿ë¾î¿Í
¸®½ºÆ® ¿£Æ®¸®ÀÇ Á¤ÀǸ¦ Á¦°øÇÑ´Ù.
¸®½ºÆ® ¿£Æ®¸®ÀÇ ÅØ½ºÆ®.
Á¤ÀÇ ¸®½ºÆ® ¿£Æ®¸®ÀÇ ¿ë¾î ºÎºÐÀÇ ÅØ½ºÆ®.
definitionList(), definitionListTerm(),
endList().
HTML¸Þ½ÃÁö¸¦ º¸³½´Ù.
public void send ()
HTML ¸Þ½ÃÁö¸¦ º¸³½´Ù.
¹®¼ Á¦¸ñÀÇ ÅØ½ºÆ®¸¦ Á¤ÇÑ´Ù.
public void title ( String title )
¹®¼ Á¦¸ñÀÇ ÅØ½ºÆ®¸¦ Á¤ÇÑ´Ù.
¸Þ½ÃÁö Á¦¸ñÀÇ ÅØ½ºÆ®.
author().
ÀÌ Å¬·¡½º¿¡´Â HTMLŬ·¡½º¸¦ ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö¿¡ °üÇÑ ¿¹Á¦¿Í Java CGI
ÆÐŰÁö°¡ Á¤È®ÇÏ°Ô µ¿ÀÛÇÏ´ÂÁö¸¦ È®ÀÎÇϴµ¥ »ç¿ëµÇ´Â Å×½ºÆ® ÇÁ·Î±×·¥ÀÌ µé¾îÀÖ´Ù.
        main()      //  ÇÁ·Î±×·¥ main().
HTML.
main() ¸Þ¼Òµå¸¦ Á¦°øÇÑ´Ù.
public static void main( String argv[] )
HTML¹®¼¿¡¼ Á¤ÀÇ ¸®½ºÆ® ¿ø¼Ò¿¡¼ °¢°¢ÀÇ name/valueÀÇ ½ÖÀ» º¸ÀÌ¸ç »ç¿ë °¡´ÉÇÑ name/valueÀÇ ½ÖÀÇ ¸®½ºÆ®¸¦ ¸®ÅÏÇÏ´Â CGIÇÁ·Î±×·¥¿¡ ´ëÇÑ ÁøÀÔÁ¡ÀÌ´Ù.
java.cgi½ºÅ©¸³Æ®¿¡ ÀÇÇØ ÇÁ·Î±×·¥¿¡ Àü´ÞµÇ´Â ÀÎÀÚµé.
ÇöÀç »ç¿ë ¾ÈÇÔ. 
public abstract class Text
ÀÌ Å¬·¡½º´Â Email °ú HTML Ŭ·¡½ºÀÇ ¼öÆÛŬ·¡½ºÀÌ´Ù. 
¸Þ½ÃÁö´Â ÀÌ Å¬·¡½º¾ÈÀÇ ¸Þ¼Òµå¿¡ ÀÇÇØ ¸¸µé¾îÁö°í ¼ºêŬ·¡½ºÀÇ ¸Þ¼Òµå·Î½á ¿Ï¼ºµÇ¸ç(completed)
Çü½ÄÈ(formatted)µÈ´Ù.
ÀÌ Å¬·¡½º´Â "Orbits.text"ÆÐŰÁö ¾È¿¡ µé¾îÀÖ´Ù.
        Text()            //  »ý¼ºÀÚ.
        add()             //  ÀÌ °´Ã¼¿¡ ÅØ½ºÆ®¸¦ Ãß°¡ÇÑ´Ù.
        addLineBreak()    //  °èÇà Ãß°¡.
        addParagraph()    //  ´Ü¶ô°èÇà Ãß°¡.
Email, HTML.
¾ÆÀÌÅÛ¿¡ ÅØ½ºÆ®¸¦ Ãß°¡ÇÑ´Ù.
public void add ( char addition )
public void add ( String addition )
public void add ( StringBuffer addition )
ÅØ½ºÆ® ¾ÆÀÌÅÛÀÇ ³»¿ë¿¡ addition¸¦ Ãß°¡ÇÑ´Ù.
ÅØ½ºÆ® ¾ÆÀÌÅÛ¿¡ Ãß°¡µÉ ÅØ½ºÆ®.
addLineBreak(), addParagraph().
Çö ½ÃÁ¡¿¡¼ ÅØ½ºÆ®¿¡ °èÇàÀ» ÇÑ´Ù.
public void addLineBreak ()
Çö ½ÃÁ¡¿¡¼ ÅØ½ºÆ®¿¡ °èÇàÀ» ÇÑ´Ù.
add(), addParagraph().
»õ·Î¿î ´Ü¶ôÀ» ½ÃÀÛÇÑ´Ù.
public void add ()
ÅØ½ºÆ® È帧ÀÇ Çö ½ÃÁ¡¿¡¼ »õ ´Ü¶ôÀ» ½ÃÀÛÇÑ´Ù.
add(), addLineBreak().