Intranet¿¡¼ÀÇ
JavaÀÎÆ®¶ó³ÝÀº ÀÎÅͳÝÀÇ Ç¥Áرâ¼úÀ» ÀÌ¿ëÇÑ´Ù´Â ¹ü¿ë¼º, »ç¿ëÀÚ Á¢±Ù ¿ëÀÌ, °³¹ßÀÇ Æí¸®ÇÔ µîÀÇ ÀÌÁ¡À¸·Î »ç¿ëÀÌ ±Þ¼ÓÈ÷ Áõ°¡Çϰí ÀÖ´Ù. ±âÁ¸ÀÇ ÀÎÆ®¶ó³Ý °³¹ßÀº ÁÖ·Î cgi-binÀ̳ª ¼¹ö API°¡ Áß½ÉÀÌ µÇ¾î ÁøÇàµÇ¾îÁ® ¿Ô°í C, C++, perlµîÀÇ ¹ü¿ë¾ð¾î°¡ ¾²¿©¿Ô´Ù. ÀÌ·¯ÇÑ ±âÁ¸¾ð¾îÀÇ È°¿ëÀº Çϵå¿þ¾î Ç÷§ÆûÀ̳ª DB¿¡ Á¾¼ÓµÇ¹Ç·Î ¿Ï¼ºµÈ ÆÐŰÁöÀÇ È°¿ë¼ºÀÌ ¶³¾îÁø´Ù.
ÃÖ±Ù¿¡ °¢±¤¹Þ°í ÀÖ´Â ÀÚ¹Ù ¾ð¾î´Â ¼ø¼ö OOPÀûÀÎ ¼º°Ý, Ç÷§Æû¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â´Ù´Â Á¡, JDBC¸¦ ÀÌ¿ëÇÑ DB ¹«°ü¼ºµîÀÇ Æ¯Â¡À¸·Î ÀÎÇØ »õ·Î¿î ÀÎÆ®¶ó³Ý °³¹ß¾ð¾î·Î ¶°¿À¸£°í ÀÖ´Ù. ¶ÇÇÑ º¸´Ù µ¿ÀûÀ̰í À¯Àú¿ÍÀÇ »óÈ£±³·ù(interaction)°¡ °ÈµÇ°í ÀÖ´Â ½ÃÁ¡¿¡¼ Ŭ¶óÀÌ¾ðÆ® Ãø¸éÀÇ ÀÚ¹Ù ¾ÖÇ÷¿ÀÇ ÀÌ¿ëÀº ¼¹öÂÊÀÇ ÀÚ¹Ù¸¦ ÀÌ¿ëÇÑ °³¹ß°ú ¸Â¹°·Á ´ÜÀÏÇÑ °³¹ßȯ°æÀ» Á¦°øÇØÁØ´Ù.
º» °ÀÇ¿¡¼´Â ÁÖ·Î ¼¹öÂÊÀÇ ÀÚ¹Ù¸¦ ÀÌ¿ëÇÑ ÀÎÆ®¶ó³Ý °³¹ßȯ°æÀ» ¾Ë¾Æº¸°í, °¢ °³¹ßȯ°æ¿¡¼ÀÇ Àå´ÜÁ¡À» ¾ð±ÞÇØ º»´Ù. ¶ÇÇÑ °¢ ȯ°æ¿¡¼ÀÇ ½ÇÁ¦ DB¿¬°á¿¹¸¦ ¾Ë¾Æº»´Ù. ¸¶Áö¸·À¸·Î ÇöÀçÀÇ ÀÚ¹Ù¸¦ ÀÌ¿ëÇÑ ÀÎÆ®¶ó³Ý °³¹ß °¡´É¼ºÀ» Á¡°ËÇØ º¸°í ¾ÕÀ¸·ÎÀÇ ¹ßÀü»óȲ¿¡ ´ëÇØ¼µµ »ý°¢ÇØ º¸±â·Î ÇÑ´Ù.
TCP/IP ±â¹ÝÀÇ ÀÎÅͳÝÀÌ WWW ±â¼ú°ú Á¢¸ñµÇ¸é¼ ±× »ç¿ëÀÚ°¡ °¡È÷ Æø¹ßÀûÀ¸·Î Áõ°¡Çϰí ÀÖ´Ù. Ãʱ⿡´Â ¸ÖƼ¹Ìµð¾î µ¥ÀÌÅÍÀÇ ´Ü¼øÇÑ Àü¼Û¿¡¼ ºÎÅÍ ½ÃÀÛÇÏ¿© ȨÆäÀÌÁö¿Í °Ë»ö ¼ºñ½º, ÃÖ±Ù µé¾î¼´Â ±âÁ¸ÀÇ Å¬¶óÀ̾ðÆ®/¼¹ö(C/S)¹æ½ÄÀ¸·Î ¿î¿µµÇ´ø ±â¾÷ȯ°æÀ» ¼ÒÀ§ ÀÎÆ®¶ó³ÝÀ¸·Î ÀüȯÇÏ´Â ½Ãµµ°¡ Ȱ¹ßÇØÁö°í ÀÖ´Ù. ÀÎÆ®¶ó³ÝÀº ±â¾÷³»ÀÇ ¸ðµç ¾÷¹«È°µ¿À» À¥±â¹Ý¿¡¼ ÇÒ ¼ö ÀÖ°Ô ÇÏ´Â °ÍÀÌ ±× ¸ñÇ¥¶ó°í ÇÒ ¼ö ÀÖ´Ù.
![]() |
ÀÎÆ®¶ó³ÝÀÇ ±Ã±ØÀûÀÎ ¸ñÇ¥´Â Àü»çÀûÀÚ¿ø°ü¸®(ERP)À¸·Î½á ±â¾÷³»ÀÇ ±â¹Ý µ¥ÀÌŸ¿Í ¹®¼µéÀ» À¥È¯°æ¿¡¼ ó¸®ÇÏ´Â °ÍÀÌ´Ù. ¿À´Ã³¯ ¿ì¸®°¡ ÈçÈ÷ ¸»ÇÏ´Â ÀÎÆ®¶ó³ÝÀº ±âÁ¸ÀÇ C/S ȯ°æ¿¡¼ ¿î¿µµÇ´ø ±×·ì¿þ¾î¸¦ À¥È¯°æÀ¸·Î ¿Å°Ü ³õÀº °ÍÀ» ¸»ÇÑ´Ù. ±×·ì¿þ¾î´Â ±âº»ÀûÀ¸·Î ¸ÞÀÏ, °Ô½ÃÆÇ, °áÀ縦 ±âº»±¸¼ºÀ¸·Î ÇÑ ÆÐŰÁö·Î µÇ¾î ÀÖ´Ù. ÀÎÆ®¶ó³ÝÀÇ Æ¯Â¡À» ¾Ë¾Æº¸±â À§ÇØ ±×·ì¿þ¾î¸¦ ´ëüÇÏ´Â °³³äÀ¸·Î½áÀÇ ÀÎÆ®¶ó³Ý°ú ±âÁ¸ÀÇ ±×·ì¿þ¾î¸¦ ºñ±³ÇØ º¸±â·Î ÇÏÀÚ.
±× ¸¹Àº À¥ÀÇ
½Å±â¼úÁß¿¡
Çϳª°¡ ¹Ù·Î ¿©±â¼
¼Ò°³ÇÏ´Â ÀÚ¹Ù¸¦
ÀÌ¿ëÇÑ ÀÎÆ®¶ó³Ý
°³¹ßÀÌ´Ù.
ÀÚ¹Ù¿¡ °ü·ÃµÈ ¿Â¶óÀÎ ¼³¸í¼´Â www.javasoft.com/docÀ» ÂüÁ¶Çϱâ·Î ÇÏ°í ¿©±â¼´Â ÀÎÆ®¶ó³Ý¿¡ °ü·ÃµÈ ÀÚ¹ÙÀÇ ¿ª»ç¸¦ °£·«È÷ ¾ð±ÞÇØ º»´Ù.
ÀÚ¹Ù°¡ ¹ßÇ¥µÈÁö 1³â¹ÝÁ¤µµ Áö³ ¿äÁò WWW»ó¿¡¼ ¹ú½á ±âÁ¸ÀÇ ¾ð¾îµéÀ» À§ÇùÇÏ´Â Á¸Àç·Î ÀÚ¹Ù°¡ ¶°¿À¸£°í ÀÖ´Â °ÍÀ» »ý°¢ÇÏ¸é °¡È÷ Æø¹ßÀûÀÎ ÀαâÀÎ °Í °°´Ù. ¸¹Àº ±âÁ¸ÀÇ ¾ÖÇø®ÄÉÀ̼ǵéÀÌ ÀÚ¹Ù·Î ´Ù½Ã ¸¸µé¾îÁö°í ÀÖÀ¸¸ç ¸¹Àº ÀÚ¹Ù ÇÁ·Î±×·¡¹Ö ȯ°æÀÌ Á¦°øµÇ±â ½ÃÀÛÇß°í, Á¡Â÷ÀûÀ¸·Î À¥¼¹ö¿¡¼µµ ÀÚ¹ÙÁö¿øÀÌ ´Ã°í ÀÖ´Ù. ƯÈ÷ JDBCÀÇ ¹ßÇ¥´Â ÀÚ¹ÙÀÇ ÀÎÆ®¶ó³Ý¿¡ÀÇ ÀÀ¿ëÀ» °¡´ÉÄÉÇÑ Áß¿äÇÑ ÀÏÀ̶ó°í º»´Ù.
ÀÎÆ®¶ó³Ý¿¡¼ ÀÚ¹Ù°¡ ¾²À̱â À§Çؼ ÇÙ½ÉÀûÀÎ ¿ä¼Ò´Â ´ÙÀ½ÀÇ ¼¼ °¡Áö¶ó°í ÇÒ ¼ö ÀÖ´Ù. .
ÀÚ¹Ù°¡ ¼¹ö¿¡¼
Áö¿øµÇ´Â ÇüÅ´Â
Å©°Ô À¥¼¹ö¿¡¼
ÀÚ¹Ù¸¦ Áö¿øÇÏ´Â
°æ¿ì¿Í À¥¼¹ö¿Í´Â
º°µµ·Î Á¸ÀçÇÏ´Â
¾ÖÇø®ÄÉÀ̼Ç
¼¹ö¿¡¼ ÀÚ¹Ù¸¦
Áö¿øÇÏ´Â °æ¿ì·Î
³ª´©¾î º¼ ¼ö
ÀÖ´Ù.
À¥¼¹ö¿¡¼ ÀÚ¹Ù¸¦
Áö¿øÇÑ´Ù´Â
Àǹ̴ ½±°Ô
¸»Çϸé Á¾ÀüÀÇ
CGI-BIN ÇÁ·Î±×·¡¹ÖÀ»
ÀÚ¹Ù¸¦ ÀÌ¿ëÇØ
ÇÒ ¼ö ÀÖÀ½À»
¶æÇÑ´Ù. ÇöÀç
»ç¿ë°¡´ÉÇÑ
ÀÚ¹Ù Áö¿ø À¥
¼¹ö·Î´Â º» ¹®¼¿¡¼
ÀÚ¼¼È÷ »ìÆì
º¼ Netscape server, Oracle Web server, Sun Jeeves serverµîÀÌ
ÀÖ´Ù.
À¥¼¹ö¿Í´Â ¹«°üÇÏ°Ô ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö¿¡¼ ÀÚ¹Ù¸¦ Áö¿øÇÏ´Â °æ¿ìµµ ÀÖ´Ù. ÀÌ °æ¿ì¿¡´Â À¥ ¼¹ö°¡ ÀÚ¹ÙÄڵ带 ¼öÇàÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó À¥¼¹ö´Â ´Ü¼øÈ÷ Ŭ¶óÀ̾ðÆ®ÀÇ ¿äûÀ» ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö¿¡ ³Ñ°ÜÁÖ°í ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö¿¡¼ ÀÚ¹ÙÄڵ带 ¼öÇàÇÏ°Ô µÈ´Ù. µû¶ó¼ À¥ ¼¹ö°¡ ÀÚ¹Ù¸¦ Áö¿øÇÏÁö ¾Ê¾Æµµ µÇ¹Ç·Î À¥¼¹ö ¼±ÅÃÀÇ ÆøÀÌ ³Ð¾îÁö°í ¶ÇÇÑ ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹öÀÇ ÇüŸ¦ Áö¿øÈ¸»ç¿¡¼ ¸¶À½´ë·Î ÇÒ ¼ö ÀÖÀ¸¹Ç·Î RAD(Rapid Application Development)ÇüÅÂÀÇ °³¹ßÀ» ¼Õ½±°Ô Áö¿ø°¡´ÉÇÏ´Ù. ´ëÇ¥ÀûÀÎ Á¦Ç°À¸·Î Netdynamics( http://www.netdynamics.com ) µîÀ» µé ¼ö ÀÖ´Ù.
ÀÎÆ®¶ó³ÝÀÇ ±¸Á¶¸¦ DB Áß½ÉÀ¸·Î º¸¸é 2-tier(±×¸² 1)¿Í 3-tier¹æ½ÄÀ¸·Î ³ª´ ¼ö ÀÖ´Ù. 2-tier¹æ½ÄÀº ÀÚ¹Ù ¾ÖÇ÷¿µîÀ» ½á¼ Ŭ¶óÀÌ¾ðÆ®¿¡¼ Á÷Á¢ DB¿¡ Á¢±ÙÇϹǷΠ¼Ò±Ô¸ð ¾ÖÇø®ÄÉÀ̼ǿ¡ ÀûÇÕÇÏ´Ù. À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ Æ¯¼º»ó DB ¿¬°áÀÌ ºó¹øÇÏ°Ô ¹ú¾îÁö°í DB ¿¬°á Äڵ尡 ¾ÖÇ÷¿¿¡ ´ã°Ü¾ß Çϱ⠶§¹®¿¡ ¼º´ÉÀÌ ¶³¾îÁö´Â ´ÜÁ¡ÀÌ ÀÖ´Ù.
![]() |
3tier¹æ½ÄÀº À¥¼¹ö³ª ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö°¡ DB¿Í Ŭ¶óÀÌ¾ðÆ®»çÀÌ¿¡ Á¸ÀçÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®°¡ ¾Æ´Ñ ¼¹öÂÊÀÇ ÇÁ·Î±×·¥ÀÌ DB¿¡ Á¢±ÙÇϱ⠶§¹®¿¡ DB ¿¬°áÀÇ °ü¸®°¡ °¡´ÉÇØÁö°í º¸´Ù È¿À²ÀûÀΠ󸮰¡ °¡´ÉÇØÁø´Ù. CGI-BINÀ» ÀÌ¿ëÇÑ DB¿¬µ¿ ¹æ¹ýÀº Áö±Ý±îÁö À¥¿¡¼ DB¿Í ¿¬µ¿Çϱâ À§ÇÑ °¡Àå º¸ÆíÀûÀÎ ¹æ¹ýÀ̾ú´Ù. ±×·¯´Ù Á¡Â÷ CGI-BINÀÇ ¼Óµµ°¡ ¹®Á¦°¡ µÇ¾ú°í ¼¹ö API¹æ½ÄÀÎ NSAPI, ISAPIÀÌ ¸¹ÀÌ ¾²À̰í ÀÖ´Ù.
3-tier¹æ½ÄÀº ¼·Ð¿¡¼
¾ð±ÞÇѹٿÍ
°°ÀÌ ´Ù½Ã À¥¼¹öÀÇ
È®ÀåÀ» ÀÌ¿ëÇØ¼
DB¸¦ Á¢±ÙÇÏ´Â
¹æ¹ý(±×¸² 2)°ú
¾ÖÇø®ÄÉÀ̼Ç
¼¹ö¸¦ ÀÌ¿ëÇØ¼
DB¸¦ Á¢±ÙÇÏ´Â
¹æ¹ý(±×¸² 3)À¸·Î
³ª´ ¼ö ÀÖ´Ù.
Çö ´Ü°è¿¡¼´Â
À¥¼¹öÀÇ È®ÀåÀÌ
ÁÖ·ù¸¦ ÀÌ·ç°í
ÀÖÁö¸¸ ½Ã½ºÅÛÀÇ
ó¸® ±Ô¸ð°¡ Ä¿Áö°í
ºÐ»ê ȯ°æÀ¸·Î
°¥¼ö·Ï ¾ÖÇø®ÄÉÀ̼Ç
¼¹ö¸¦ ÀÌ¿ëÇÏ´Â
ÀÏÀÌ Áõ°¡ÇÒ
°ÍÀ¸·Î »ý°¢µÈ´Ù.
![]() |
![]() |
ÀÚ¹Ù IDE(Integrated Development Environment) ÇÁ·Î±×·¡¹Öȯ°æÀ¸·Î´Â MSÀÇ VJ++ , SunÀÇ Java Workshop , SymantecÀÇ Visual CafeµîÀÌ ÀÖ´Ù. VJ++ 1.0Àº Microsoft»çÀÇ ´Ù¸¥ °³¹ßÅø°ú °°Àº ÀÎÅÍÆäÀ̽º¸¦ ÃëÇϰí ÀÖ¾î¼ ºÎ´ã¾øÀÌ Á¢±ÙÇØ º¼ ¼ö ÀÖ¾ú°í, SunÀÇ Java Workshop 1.0Àº Windows 95¿¡¼ Á¦°øµÇ´Â ±â´ÉÀÌ ´Ù¾çÇÏÁö ¸øÇϰí ÀüüÀûÀ¸·Î ¿©ÀüÈ÷ ´À¸° °¨ÀÌ ¾øÁö ¾Ê¾Ò´Ù. Java Workshop( http://www.sun.com/developer-products/java )°ú Visual Cafe( http://cafe.symantec.com/vcpr1.html )´Â trial versionÀ» ´Ù¿î¹ÞÀ» ¼ö ÀÖ´Ù.
RAD(Rapid Application Development) GUI Åø·Î´Â BorlandÀÇ Latte, NetDynamicsÀÇ NetDynamics StudioµîÀÌ ÀÖÀ¸¸ç ÀÎÆ®¶ó³ÝÀÌ SI(System Integration)¿Í °áÇյǾîÁö¸é¼ ´õ¿í´õ ¸¹Àº RAD GUI toolÀÌ °³¹ßµÇ¾îÁú °ÍÀ¸·Î º¸ÀδÙ.
![]() |
JDBC´Â 96³â 3¿ù Sun¿¡
ÀÇÇØ ¹ßÇ¥ÇÑ
Java¿¡¼ÀÇ DB ¿¬°á¿¡
°üÇÑ Ç¥ÁØ ±Ô¾àÀÌ´Ù.
JDBC¸¦ »ç¿ëÇϱâ
À§Çؼ´Â JDBC driver class,
JDBC driver, DBMS°¡ ÇÊ¿äÇÏ´Ù.
ÇÑ ¹ø JDBC API¸¦ »ç¿ëÇØ
ÀÛ¼ºµÈ ÄÚµå´Â
DBÀÇ Á¾·ù¿¡ ¹«°üÇÑ
Ư¡À» °¡Áö°Ô
µÈ´Ù. ÁÖÀÇÇÒ
Á¡Àº DB¸¶´Ù µ¶Æ¯ÇÑ
Ư¡µéÀ» ¸¹ÀÌ
°¡Áö°í ÀÖÀ¸¹Ç·Î
Á» ´õ ¸¹Àº DB¸¦
Áö¿øÇϱâ À§Çؼ´Â
ÀÌ·¯ÇÑ Æ¯Â¡µéÀ»
¾²Áö ¾Êµµ·Ï
ÇØ¾ß ÇÑ´Ù. ¸¹Àº
ȸ»çµéÀÌ JDBC driver¸¦
³»³õ°í Àִµ¥
±× ÇüÅ´ ũ°Ô
´ÙÀ½ÀÇ ¼¼ °¡Áö·Î
³ª´ ¼ö ÀÖ´Ù.
10¿ù ÇöÀç ¸¹Àº JDBC Driver°¡ ³ª¿Í ÀÖÁö¸¸ »ó´ç¼ö°¡ beta¿¡ ¸Ó¹°·¯ ÀÖ´Ù. ´ÙÀ½ÀÇ ¿¹Á¦¿¡ »ç¿ëµÈ jdbcKona/T3µµ ÀÚÁÖ Á×´Â °æ¿ì°¡ ¹ß»ýÇß´Ù. ÇÏÁö¸¸ ±× ¹ßÀü ¼Óµµ¿Í °ü½Éµµ·Î º¼¶§ Á¶¸¸°£ ¾ÈÁ¤ÈµÈ Á¦Ç°À» º¸°Ô µÇ±â¸¦ ±â´ëÇØ º»´Ù.
Netscape»çÀÇ ÀÎÆ®¶ó³Ý °³¹ß Àü·«Àº Netscape ONE(Open Network Environment)À» Áß½ÉÀ¸·Î ÇÑ´Ù. Netscape ONE Àü·«Àº SuiteSpotÀ̶ó´Â ¼¹ö±ºÀ§¿¡ Java¿Í JavaScript¸¦ Áö¿øÇϰí Ŭ¶óÀ̾ðÆ®ÂÊÀÇ Netscape NavigatorÀ§¿¡ Java applets, JavaScript, HTML, plug-insµîÀÇ È¯°æÀ» Á¦°øÇØ ÁØ´Ù. ¸ðµÎ Ç÷§Æû¿¡ ÀÇÁ¸ÇÏÁö ¾Ê°í ±âÁ¸¿¡ Ç¥ÁØÀ¸·Î ÀÎÁ¤µÇ´ø ±â¼úµéÀ» °³¹ßȯ°æÀ¸·Î äÅÃÇß´Ù´Â Á¡ÀÌ Æ¯Â¡ÀÌ´Ù. Netscape»çÀÇ °³¹ßȯ°æÀ» º¸¸é JavaScript·Î ´ëº¯µÇ´Â Livewire¿¡¼´Â Oracle, Sybase, InformixµîÀÇ DB driver°¡ Á¦°øµÇ°í dzºÎÇÑ ±â¹Ý API°¡ Á¦°øµÇ°í ÀÖ´Ù. ÀÌ¿¡ ¹ÝÇØ Java¿¡¼´Â JDBC¿¡ ´ëÇÑ Áö¿øÀÌ ºüÁ® ÀÖ°í APIµéµµ HTTP¸¦ Áö¿øÇÏ´Â Á¤µµ¿¡ ¸Ó¹°°í ÀÖ´Ù. ±×·¯³ª ÀúÀÚÀÇ Å×½ºÆ® °á°ú·Î´Â À¥¼¹öÀÇ È®ÀåÀ¸·Î ÀÚ¹Ù¸¦ ÀÌ¿ëÇØ¼ ÀÎÆ®¶ó³Ý ȯ°æÀ» ±¸ÃàÇϴµ¥´Â ¹«¸®°¡ ¾ø¾î º¸¿´´Ù.
![]() |
/* jdbc test using t3 server and netscape server 2.0*/
import netscape.server.applet.HttpApplet;
import xjava.sql.*;
import weblogic.db.xjdbc.*;
import weblogic.common.*;
import java.util.*;
import java.io.*;
public class showPublisher extends HttpApplet {
public void run() throws Exception {
if(returnNormalResponse("text/html")) {
PrintStream out=getOutputStream();
out.println("<body bgcolor=#ffffff text=#000000>");
String s="Publisher TableÀÇ Ãâ·Â";
out.println("<h1>"+s+"</h1>");
select(out);
out.println("</body>");
}
}
void select(PrintStream out) {
T3Client t3=null;
Connection conn = null;
try {
t3=new T3Client("t3://elf:7001");
t3.connect();
Class.forName("weblogic.jdbc.t3client.Driver");
Properties dbprops = new Properties();
dbprops.put("user", "sa");
dbprops.put("password", "password");
dbprops.put("server", "");
Properties t3props=new Properties();
t3props.put("weblogic.t3", t3);
t3props.put("weblogic.t3.dbprops", dbprops);
t3props.put("weblogic.t3.driver", "weblogic.jdbc.dblib.Driver");
t3props.put("weblogic.t3.url", "jdbc:weblogic:mssqlserver");
Class.forName("weblogic.jdbc.t3client.Driver");
conn = DriverManager.getConnection("jdbc:weblogic:t3client", t3props);
Statement stmt = conn.createStatement();
stmt.execute("use pubs");
ResultSet rs=stmt.executeQuery("select name, company, phone from Publisher");
out.println("<table border=1> ");
out.println("<tr> <td> name <td> company <td> phone </tr>");
while(rs.next()) {
out.println("<tr> <td>"+rs.getString("name")+"<td>"+
rs.getString("company") +"<td>"+rs.getString("phone")+"</tr>");
}
out.println("</table>");
rs.close();
stmt.close();
}
catch(Exception e1) {
if(conn!=null)
try {
conn.close();
} catch(SQLException sqe) {
out.println("connection close failure");
}
if(t3!=null)
try {
t3.disconnect();
} catch(Exception e) {
out.println("t3 connection close failure");
}
}
}
}
![]() |
Oracle Web server 2.0( http://www.oracle.com/products/websystem/intranet/html/ws2tech.html )ÀÇ Æ¯Â¡Àº ¹Ù·Î WRB(Web Request Broker)¿Í Catridge·Î ¿ä¾àµÈ´Ù. Web Listener¿¡¼ HTTP ¿äûÀÌ Ã³¸®µÇ°í Web Listener°¡ ƯÁ¤ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¼öÇàÀ» WRB³»ÀÇ Web Dispatcher¿¡°Ô ¿ä±¸ÇÑ´Ù. Web Dispatcher´Â WRB Excecution Engine(WRBX)¸¦ ÀÌ¿ëÇÏ¿© ¿ä±¸¹ÞÀº ¾ÖÇø®ÄÉÀ̼ÇÀ» ¼öÇàÇÑ´Ù. À̶§ WRBX´Â ¹Ì¸® µî·ÏµÈ ÇØ´ç ¾ÖÇø®ÄÉÀ̼ǿ¡ ´ëÇÑ CatridgeÀ§¿¡¼ ½ÇÇà½ÃŲ´Ù. °¡·É À¯Àú°¡ ÀÚ¹Ù ¾ÖÇø®ÄÉÀ̼ÇÀ» ¿äûÇßÀ»¶§ Java Interpreter Catridge°¡ ÇÊ¿äÇϰí PL/SQL script¸¦ ¿äûÇßÀ»¶§´Â PL/SQL ½ÇÇà Catridge°¡ ÇÊ¿äÇÑ °ÍÀÌ´Ù. ÀÌ·¯ÇÑ Catridge´Â WRB API¸¦ ÀÌ¿ëÇÏ¿© À¯Àú°¡ Á÷Á¢ ¸¸µé ¼öµµ ÀÖ´Ù.ÀÌó·³ Oracle¿¡¼´Â CatridgeÀÇ Çϳª·Î Javaȯ°æÀÌ ±¸ÇöµÇ¾î ÀÖ´Ù.
OracleÀº JDBC¸¦ Ưº°È÷ Áö¿øÇÏÁö´Â ¾Ê°í ±âÁ¸ ÀÚ»çÀÇ DB ¾ð¾îÀÎ PL/SQLÀ» Java class·Î ¹Ù²Ù¾îÁÖ´Â Åø(pl2java)À» Á¦°øÇÑ´Ù. µû¶ó¼ ±âÁ¸¿¡ ÀÛ¼ºµÇ¾î ÀÖ´ø PL/SQL ¹®ÀåÀ» ±×´ë·Î ÀÚ¹Ù Äڵ忡¼ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ÀåÁ¡ÀÌ ÀÖ´Ù.
Oracle Web serverÀÇ ÀåÁ¡Àº ¹«¾ùº¸´Ùµµ DB ¿¬°á ¼ÓµµÀÌ´Ù. ÀÚ»çÀÇ DB¿¡ ¸Â°Ô ƯȵǾî ÀÖ´Ù´Â Á¡¿Ü¿¡µµ DB connectionÀ» À¯ÀúÀÇ ¿äûÀÌ ³¡³ ÈÄ¿¡µµ WRB°¡ °¡Áö°í ÀÖ´Ù°¡ ´ÙÀ½ÀÇ connection¶§ Àç»ç¿ëÇϹǷΠWeb/ DB¿¬µ¿¶§ÀÇ °íÁúÀûÀÎ ¹®Á¦ÀÎ DB connection¿¡ µå´Â ½Ã°£À» ÁÙ¿´´Ù. ÀÌ·¯ÇÑ ÀåÁ¡µéÀÌ µ¸º¸À̱⠶§¹®¿¡ OracleÀ» ÀÚ»çÀÇ DB·Î ä¿ëÇϰí ÀÖ´Â °÷¿¡¼´Â Oracle Web server¸¦ ÀÌ¿ëÇÏ´Â °ÍÀÌ À¯¸®Çϸ®¶ó »ý°¢µÈ´Ù.
ÇöÀç Oracle Web server 2.0¿¡¼ Á¦°øÇÏ´Â Àڹ٠Ŭ·¡½º¸¦ ÀÌ¿ëÇØ °³¹ßÇÒ ¶§ ÁÖÀÇÇÒ Á¡Àº jdk 1.0.2¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù´Â Á¡ÀÌ´Ù.( www-sup.uk.oracle.com/cgi-bin/utils/gethit.sh/bugtr?373840+PL2JAVA )
´ÙÀ½ÀÇ ¿¹Á¦´Â
Employee.sql°ú EmployeeReport.java·Î ÀÌ·ç¾îÁ®
ÀÖ´Ù. EmployeeReport.javaÀÇ ÀÔÀå¿¡¼´Â
Employee°¡ ÇϳªÀÇ classÀ̸ç
Employee³»ÀÇ functionÀ̳ª
procedureµéÀº ¸ðµÎ Employee
classÀÇ method·Î »ý°¢ÇÑ´Ù.
Employee class¿¡¼ µ¹¾Æ¿À´Â
¸®ÅϰªµéÀº ¸ðµÎ
Java object(PStringBuffer, PDouble)·Î 󸮵ǴÂ
°ÍÀ» º¼ ¼ö ÀÖ´Ù.
Áö¸é°ü°è»ó PL/SQL·Î
±¸¼ºµÈ Employee.sqlÀº
»ý·«Çϱâ·Î
Çϰí, EmployeeReport.javaÀÇ ¼Ò½º
Äڵ常 ´ÙÀ½¿¡
Àû´Â´Ù.
Âü°í·Î Oracle¿¡¼
Á¦°øÇÏ´Â ÆÐŰÁö´Â
´ÙÀ½ÀÇ ¼¼°¡ÁöÀÌ´Ù.
<EmployeeReport.java>
import oracle.rdbms.*;
import oracle.plsql.*;
import oracle.html.*;
public class EmployeeReport {
public static void main (String args[]) throws HtmlException {
HtmlHead hd = new HtmlHead("Employee Listing");
HtmlBody bd = new HtmlBody();
HtmlPage hp = new HtmlPage(hd, bd);
hp.printHeader();
Session.setProperty("ORACLE_HOME", "/disc1/oracle/orainst/app/oracle/product/7.3.2");
Session.setProperty("TNS_ADMIN",
"/disc1/oracle/orainst/app/oracle/product/7.3.2/network/admin");
Session session;
// create a database session and logon
try {
session = new Session("scott", "scott", "Sharon_handy");
} catch (ServerException e) {
bd.addItem(new SimpleItem("Logon fails: " + e.getSqlerrm()));
hp.print();
return;
}
// create a new instance of Employee package
Employee employee = new Employee(session);
// find the department name "Sales"
String deptName = "Sales";
// create objects to encapsulate PL/SQL values that are
// used as parameters
PStringBuffer pDeptName = new PStringBuffer(30, deptName);
PStringBuffer pEmployeeName[];
PDouble pEmployeeNumber[];
PDouble pEmployeeCount;
// print report header
bd.addItem("Department " + pDeptName + ":").addItem(SimpleItem.Paragraph);
// call Employee packate to count the number of employees in
// the department
try {
pEmployeeCount = employee.count_employees(pDeptName);
} catch (ServerException e) {
bd.addItem("Fail to retrieve employee information for department " +
deptName + ": " + e.getSqlerrm());
hp.print();
return;
}
int employeeCount = (int)pEmployeeCount.doubleValue();
if (employeeCount == 0) {
bd.addItem("No employee found under department " + deptName);
hp.print();
return;
}
// allocate the arrays for employee names and numbers
pEmployeeName = new PStringBuffer[employeeCount];
pEmployeeNumber = new PDouble[employeeCount];
// allocate the buffers to retrieve employee information
for(int i = 0; i < employeeCount; i++) {
// max length of employee name is 30 (characters)
pEmployeeName[i] = new PStringBuffer(30);
pEmployeeNumber[i] = new PDouble();
}
// call Employee packate to look up employees in the dept
try {
employee.list_employees(pDeptName, pEmployeeName, pEmployeeNumber);
} catch (ServerException e) {
bd.addItem("Fail to retrieve employee information for department " +
deptName + ": " + e.getSqlerrm());
hp.print();
return;
}
// generate report
DynamicTable tab = new DynamicTable(2);
TableRow row = new TableRow();
row.addCell(new TableHeaderCell("Employee Name"))
.addCell(new TableHeaderCell("Employee Number"));
tab.addRow(row);
for (int i = 0; i < employeeCount; i++) {
row = new TableRow();
if (pEmployeeNumber[i].isNull())
row.addCell(new TableDataCell(pEmployeeName[i].toString()))
.addCell(new TableDataCell("new employee"));
else
row.addCell(new TableDataCell(pEmployeeName[i].toString()))
.addCell(new TableDataCell(pEmployeeNumber[i].toString()));
tab.addRow(row);
}
hp.addItem(tab);
hp.print();
// logoff from database
try {
session.logoff();
} catch (ServerException e);
}
}
![]() |
À¥ ¼¹ö ÀÚü°¡ ÀÚ¹Ù·Î ÄÚµùµÇ¾îÁ® ÀÖ´Ù¸é ÀÚ¹Ù ÇÁ·Î±×·¥À» ¼öÇàÇÏ´Â µ¥´Â °¡Àå ÀÌ»óÀûÀÏ °ÍÀÌ´Ù. ¹Ù·Î Sun¿¡¼ ¸¸µç Jeeves( http://www.javasoft.com/jeeves )°¡ ±×°ÍÀÌ´Ù. JeevesÀÇ ÇöÀç ¹öÁ¯(alpha 1.2)Àº Netscape Server³ª Internet Information Server¿¡¼ º¼ ¼ö ÀÖ´Â ¸¹Àº Ư¡µéÀÌ ¾øÀ¸¹Ç·Î ¾ÆÁ÷±îÁö »ó¿ëÀ¸·Î ¾²±â¿¡´Â ¹«¸®°¡ ÀÖÁö¸¸ °ü½ÉÀÖ°Ô ÁöÄÑ º¸´Â °Íµµ ³ª»ÚÁö ¾ÊÀ¸¸®¶ó »ý°¢µÈ´Ù.
Jeeves´Â handler poolÀ̶ó°í
ÇØ¼ ¹Ì¸® Á¤ÇØÁø
°¹¼öÀÇ thread°¡ µ¹°í
ÀÖ´Ù. ÀÌ thread¿¡¼´Â
¿äû¹ÞÀº ¾ÖÇø®ÄÉÀ̼Ç,
servletÀ» ¼öÇàÇÑ´Ù.
servlet¿¡´Â ±âÁ¸ÀÇ
cgi-binÀ» ½ÇÇà½ÃÄÑ
ÁÖ´Â cgi servlet, ¹®¼¸¦
º¸³¾ ¼ö ÀÖ´Â
file servlet, ±×¹Û¿¡ À¯Àú°¡
¸¸µç servletµîÀÌ ÀÖ´Ù.
JDBC Driver´Â ¾Õ¿¡¼ ¾ð±ÞÇÑ ¼¼°¡Áö ÇüŸ¦ ¸ðµÎ ¾µ ¼ö ÀÖ°í Netscape Web server¿¡¼ ¼Ò°³ÇÑ ¿¹Á¦¿¡¼ httpºÎºÐÀ» ´Ù·ç´Â °÷¸¸ ¼öÁ¤ÇÏ¸é µÇ¹Ç·Î ¿¹Á¦ÄÚµå´Â ÀûÁö ¾Ê´Â´Ù.
Netdynamics »ç¿¡¼´Â Ŭ¶óÀ̾ðÆ®ÂÊÀÇ RAD GUI ÅøÀ», ¼¹öÂÊÀÇ DB ¿¬°áÀ» Áö¿øÇÏ´Â ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö¸¦ Á¦°øÇÑ´Ù. ¿ì¸®´Â C/S ȯ°æ¿¡¼ RAD GUI ÅøÀÌ ¾ó¸¶³ª ¼º°øÇߴ°¡¸¦ Àß ¾Ë°í ÀÖ´Ù. µû¶ó¼ Web/DB °³¹ß ȯ°æ¿¡¼µµ ÀÌ·¯ÇÑ RAD GUI ÅøÀÌ Áß¿äÇÑ ¿ªÇÒÀ» Çϸ®¶ó´Â °ÍÀº ÀÚ¸íÇÑ ÀÏÀÌ´Ù. ÀÌ Åø¿¡ ÀÇÇØ ÀÛ¼ºµÈ ÄÚµå´Â ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö¿¡ ¿Ã¸± ¼ö ÀÖ°í ÈÄ¿¡ »ç¿ëÀÚÀÇ ¿äûÀÌ ÀÖÀ»¶§ ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö¿¡ ÀÇÇØ ½ÇÇàµÈ´Ù. À̶§ ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö¿¡ ¿Ã¶ó°¡´Â ¸ðµç ÄÚµå´Â ÀÚ¹Ù·Î »ý¼ºµÈ´Ù.
ÇÊÀÚ´Â ÀÌ È¯°æÀ» Á÷Á¢ ½á º¸Áö´Â ¸øÇßÁö¸¸ ±× ±¸Á¶¸¦ º¸¾ÒÀ»¶§ °³¹ßȯ°æÀ¸·Î¼´Â °¡Àå ÀÌ»óÀûÀÎ ÇüŶó´Â »ý°¢ÀÌ µé¾ú´Ù. ±× ÀÌÀ¯´Â RAD GUI ÅøÀ» Áö¿øÇÔÀ¸·Î½á °³¹ß ±â°£ ´ÜÃàÀ» ³ë·È°í, ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹öÀÚü°¡ DB ¿¬°á ·ÎÁ÷À» °¡ÁüÀ¸·Î½á DB ¿¬°á ¹®Á¦¸¦ °³¹ßÀÚ°¡ ½Å°æ¾²Áö ¾Êµµ·Ï Ç߱⠶§¹®ÀÌ´Ù.
´ÙÀ½ÀÇ »çÀÌÆ®¿¡¼ trial versionÀ» ´Ù¿î¹ÞÀ» ¼ö ÀÖ´Ù.( http://www.netdynamics.com/download/download.html )
![]() |
º» ¹®¼¿¡¼´Â ÀÎÆ®¶ó³ÝÀ» °³¹ßÇÒ¶§ Áß¿äÇÑ ¿ä¼Ò·Î
À» »Ì¾Ò°í ÀÌÁß¿¡¼ ¼¹öÂÊÀÇ °³¹ßȯ°æ°ú DB¿¬°áÀ» ÁßÁ¡ÀûÀ¸·Î »ìÆì º¸¾Ò´Ù.
ÀÎÆ®¶ó³Ý °³¹ßȯ°æÀ¸·Î½áÀÇ ÀÚ¹Ù´Â ºÐ¸í ´ÙÀ½°ú °°Àº ÀåÁ¡À» °¡Áö°í ÀÖ´Ù. .
±×·¯³ª ¾ÆÁ÷±îÁö ¼¹öÂÊÀÇ ÀÚ¹Ù¸¦ Áö¿øÇÏ´Â À¥¼¹öÀÇ ¼öµµ ¸¹Áö ¾Ê°í JDBC Driver ¾ÈÁ¤ÈÀÛ¾÷µµ ÀÌ·ç¾îÁ®¾ß ÇÑ´Ù. ¹«¾ùº¸´Ù ÀÚ¹Ù¸¦ ÀÌ¿ëÇÑ ÀÎÆ®¶ó³Ý °³¹ßÀÌ È°¼ºÈµÇ±â À§Çؼ´Â RAD GUI ÅøÀÌ º¸´Ù ¸¹ÀÌ °³¹ßµÇ¾îÁ®¾ß ÇÒ °ÍÀÌ´Ù. C/S ȯ°æ¿¡¼ÀÇ PowerBuilder³ª Delphi°¡ °ÅµÎ¾ú´ø ¼º°øÀÌ ¾Æ¸¶µµ Web/DB °³¹ß¿¡¼µµ ÀçÇöµÉ °ÍÀ̱⠶§¹®ÀÌ´Ù. ÀÌ·¯ÇÑ °üÁ¡¿¡¼ º¸¾ÒÀ» ¶§ SunÀÌ ½ºÆå¼öÁØ¿¡¼ ¹ßÇ¥ÇÑ Java Beans( www.javasoft.com/beans )´Â ÁÖ½ÃÇØ º¸¾Æ¾ßµÉ ¿òÁ÷ÀÓÀ̶ó ÇÒ ¼ö ÀÖ´Ù.
º» ¹®¼¿¡¼´Â ÀÎÆ®¶ó³Ý¿¡¼ÀÇ ÀÚ¹Ù ÇÁ·Î±×·¡¹ÖÀ» ÁýÁßÀûÀ¸·Î ¾Ë¾Æ º¸¾ÒÁö¸¸ »ç½Ç ÇϳªÀÇ °Å´ëÇÑ ÀÎÆ®¶ó³ÝÀ» ±¸ÃàÇϱâ À§Çؼ´Â »óȲ¿¡ µû¶ó ´Ù¾çÇÑ °³¹ßȯ°æÀÌ ¾²¿©Á®¾ß ÇÑ´Ù. º¸´Ù ¼Õ½¬¿î ÀÛ¾÷Àº scripting ¾ð¾î·Î Â¥¿© Áú ¼öµµ ÀÖÀ» °Å°í, ¼Óµµ°¡ ¹®Á¦½ÃµÇ´Â °÷¿¡¼´Â ¿©ÀüÈ÷ NSAPI³ª ISAPI¸¦ ½á¾ß ÇÒ °ÍÀÌ´Ù. ¶ÇÇÑ DB°¡ Áß½ÉÀÌ µÈ´Ù¸é DB vendorµéÀÌ Á¦°øÇϴ ȯ°æÀ» »ç¿ëÇÏ´Â °ÍÀÌ ´õ ³ºÀ» ¼öµµ ÀÖ´Ù.
¸¶Áö¸·À¸·Î °Á¶ÇÏ°í ½ÍÀº Á¡Àº µÎ¼³Ê´ÞÀü¸¸Çصµ »ý°¢ÇÒ ¼ö ¾ø¾ú´ø ÀÎÆ®¶ó³ÝÀÇ ÀÚ¹Ù °³¹ß ȯ°æÀÌ ÀÌÁ¦ Á¡Â÷ÀûÀ¸·Î °¡½Ãȵǰí ÀÖ´Ù´Â Á¡ÀÏ °ÍÀÌ°í ¿©Áö²¯ÀÇ ÀÚ¹ÙÀÇ ÇàÀû¿¡¼ ¹Ì·ç¾î º¼¶§ ¾ÆÁÖ ºü¸£°Ô ¿ì¸® °ç¿¡¼ Áß¿äÇÑ °³¹ßȯ°æÀÇ Çϳª·Î ÀÚ¸® ÀâÀ» °ÍÀÌ´Ù.
Last-Modified : Sunday, 20-Oct-96 KDT