ÇöÀç ¼¼°³ÀÇ ¸ÞÀΠŬ·¡½º°¡ Á¦°øµÈ´Ù. 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()
.