Links Top Level Elements Connectors Containers Nested Components | The Context Container| ¼Ò°³(Introduction) |
Context ¿¤¸®¸ÕÆ®´Â ƯÁ¤ °¡»óÈ£½ºÆ® ³»¿¡¼
½ÇÇàµÇ´Â À¥¾îÇø®ÄÉÀ̼ÇÀ» ³ªÅ¸³À´Ï´Ù. °¢ À¥¾îÇø®ÄÉÀ̼ÇÀº
À¥¾îÇø®ÄÉÀÌ¼Ç ¾ÆÄ«À̺ê(Web Application Archive) (WAR)
ÆÄÀÏ ¶Ç´Â, ÆÐÅ·ÇÏÁö ¾ÊÀº ä·Î ±×¿¡ »óÀÀÇÏ´Â ³»¿ëÀ» ´ã°í ÀÖ´Â µð·ºÅ丮¸¦
±âÁØÀ¸·Î Çϸç, ÀÌ·¯ÇÑ ³»¿ëÀº ¼ºí¸´ ½ºÆå(¹öÀü 2.2 ¶Ç´Â ±× ÀÌ»ó)¿¡
¼³¸íµÇ¾î ÀÖ½À´Ï´Ù. À¥¾îÇø®ÄÉÀÌ¼Ç ¾ÆÄ«À̺꿡 °üÇÑ ´õ ¸¹Àº Á¤º¸¸¦
¿øÇÏ½Ã¸é ¼ºí¸´
½ºÆåÀ» ´Ù¿î·ÎµåÇØ¼ Âü°íÇϽʽÿÀ. ±×¸®°í Tomcat ¾îÇø®ÄÉÀ̼Ç
°³¹ßÀÚ °¡À̵å(Application Developer's Guide)¸¦ °ËÅäÇϽñâ
¹Ù¶ø´Ï´Ù.
°¢ HTTP ¿äûÀ» ó¸®Çϴµ¥ »ç¿ëÇÒ À¥¾îÇø®ÄÉÀ̼ÇÀÇ ¼±ÅÃÀº,
°¢°¢ Á¤ÀÇµÈ ContextÀÇ ÄÁÅØ½ºÆ® °æ·Î(context path)¿¡ ´ëÇØ
¿äû URIÀÇ °¡´ÉÇÑ ÀüÄ¡¾î(prefix) Áß °¡Àå ±æ°Ô ¸Åΰ¡´ÉÇÑ ÄÁÅØ½ºÆ®
°æ·Î¸¦ °¡Áø ÄÁÅØ½ºÆ®¸¦ ¼±ÅÃÇÔÀ¸·Î½á ÀÌ·ç¾îÁý´Ï´Ù.
¼±ÅÃµÈ Context´Â ¼ö½ÅµÈ ¿äûÀ» ó¸®Çϱâ À§ÇØ ÀûÀýÇÑ ¼ºí¸´À»
¼±ÅÃÇÕ´Ï´Ù. ¼ºí¸´ ¼±Åà ÀÛ¾÷Àº
À¥¾îÇø®ÄÉÀÌ¼Ç ¹èÄ¡
µð½ºÅ©¸³ÅÍ(web application deployment descriptor)
ÆÄÀÏ(¹Ýµå½Ã À¥¾îÇø®ÄÉÀÌ¼Ç µð·ºÅ丮 ÇÏÀ§ÀÇ
/WEB-INF/web.xml¿¡ À§Ä¡ÇÔ)¿¡ Á¤ÀÇµÈ ¼ºí¸´ ¸ÅÇÎ Á¤º¸¿¡
µû¶ó¼ ÀÌ·ç¾îÁý´Ï´Ù.
Context ¿¤¸®¸ÕÆ®´Â Ƚ¼öÀÇ Á¦ÇÑ ¾øÀÌ Á¤ÀÇÇÒ ¼ö ÀÖÀ¸¸ç,
conf/server.xmlÀÇ Host ¿¤¸®¸ÕÆ®
³»¿¡ Áßø½ÃŰ¸é µË´Ï´Ù. °¢°¢ÀÇ Context´Â ¹Ýµå½Ã À¯ÀÏÇÑ ÄÁÅØ½ºÆ® °æ·Î¸¦
°¡Á®¾ß Çϸç, ÄÁÅØ½ºÆ® °æ·Î´Â path ¼Ó¼ºÀ¸·Î Á¤Àǵ˴ϴÙ.
¶Ç ÄÁÅØ½ºÆ® °æ·ÎÀÇ ¹®ÀÚ¿ ±æÀ̰¡ 0ÀÎ Context¸¦ Ãß°¡·Î ÁöÁ¤ÇØ¾ß Çϴµ¥,
ÀÌ·¸°Ô Á¤ÀÇÇÑ Context´Â ÀÌ °¡»ó È£½ºÆ®¿¡ ´ëÇÏ¿© default
À¥¾îÇø®ÄÉÀ̼ÇÀÌ µÇ¾î, ´Ù¸¥ ¾î¶² ContextÀÇ ÄÁÅØ½ºÆ® °æ·Î¿¡µµ ¸ÅεÇÁö
¾Ê´Â ¸ðµç ¿äûÀ» ó¸®Çϴµ¥ »ç¿ëµË´Ï´Ù.
Context ¿¤¸®¸ÕÆ®¸¦ Host
¿¤¸®¸ÕÆ®¿¡ Áßø½ÃŰ´Â ¹æ¹ý ¿Ü¿¡µµ, HostÀÇ appBase·Î ÁöÁ¤µÈ
µð·ºÅ丮 ¾È¿¡ À̵éÀ» °¢°¢ÀÇ ÆÄÀÏ(È®ÀåÀÚ´Â ".xml")·Î ÀúÀåÇÏ´Â ¹æ¹ýÀÌ
ÀÖ½À´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀÇ
ÀÚµ¿¹èÄ¡(Automatic Application Deployment)¿¡¼ ´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ º¼
¼ö ÀÖ½À´Ï´Ù.
¸í½ÃÀûÀ¸·Î Context ¿¤¸®¸ÕÆ®¸¦ ÁöÁ¤ÇÏ´Â ¹æ¹ý »Ó¸¸ ¾Æ´Ï¶ó,
´ç½ÅÀ» À§ÇØ ÀÚµ¿À¸·Î Context ¿¤¸®¸ÕÆ®¸¦ »ý¼ºÇØ ÁÖ´Â ¸î°¡Áö Å×Å©´Ðµµ
Á¸ÀçÇÕ´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀÇ
ÀÚµ¿¹èÄ¡(Automatic Application Deployment)¿Í »ç¿ëÀÚ
À¥¾îÇø®ÄÉÀ̼Ç(User Web Applications)¿¡¼ ´õ ¸¹Àº Á¤º¸¸¦ º¼ ¼ö
ÀÖ½À´Ï´Ù.
ÀÌÇÏÀÇ ¼³¸í¿¡¼´Â $CATALINA_HOME º¯¼ö¸íÀ» »ç¿ëÇÏ¿© ´ç½ÅÀÌ
Tomcat 4¸¦ ¼³Ä¡ÇÑ µð·ºÅ丮¸¦ ÂüÁ¶Çϸç, ÀÌ µð·ºÅ丮°¡ ´ëºÎºÐÀÇ
»ó´ë°æ·Î¿¡ ´ëÇÑ ±âÁØ µð·ºÅ丮(base directory)°¡ µË´Ï´Ù.
±×·¯³ª ¸¸¾à CATALINA_BASE µð·ºÅ丮¸¦ ¼³Á¤ÇÏ¿© Tomcat 4¸¦ ¿©·¯°³
¼³Ä¡Çß´Ù¸é, ÀÌ·¯ÇÑ µð·ºÅ丮 º¯¼ö ÂüÁ¶¿¡ ´ëÇØ $CATALINA_HOME ´ë½Å
$CATALINA_BASE ¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
|
| ¼Ó¼º(Attributes) |
| °øÅë¼Ó¼º(Common Attributes) |
ContextÀÇ ¸ðµç ±¸Çöü´Â ´ÙÀ½ ¼Ó¼ºµéÀ» Á¦°øÇÏ°Ô µË´Ï´Ù:
| ¼Ó¼º | ¼³¸í |
|---|
className |
»ç¿ëÇÒ Java ±¸Çöü Ŭ·¡½ºÀÇ À̸§. ÀÌ Å¬·¡½º´Â ¹Ýµå½Ã
org.apache.catalina.Context ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù.
ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é Ç¥Áذª (¾Æ·¡¿¡ Á¤Àǵ˴ϴÙ)ÀÌ »ç¿ëµË´Ï´Ù.
| cookies |
true(µðÆúÆ®)·Î ÁöÁ¤Çϸé Ŭ¶óÀÌ¾ðÆ®°¡ Äí۸¦
Áö¿øÇÏ´Â °æ¿ì ¼¼¼ÇÈ®ÀÎÀÇ Åë½Å¼ö´Ü(session identifier communication)À¸·Î
Äí۸¦ »ç¿ëÇÕ´Ï´Ù. false·Î ÁöÁ¤ÇÏ¸é ¼¼¼ÇÈ®ÀÎÀÇ Åë½Å¼ö´ÜÀ¸·Î
ÄíŰ »ç¿ëÀ» ÇÏÁö ¾Ê°í, ¾îÇø®ÄÉÀ̼ǿ¡ ÀÇÇÑ
URL ´Ù½Ã¾²±â(URL rewriting)¿¡¸¸ ÀÇÁ¸ÇÑ´Ù´Â ÀǹÌÀÔ´Ï´Ù.
| crossContext |
true·Î ÁöÁ¤Çϸé ÀÌ ¾îÇø®ÄÉÀ̼ǿ¡¼
ServletContext.getContext() È£ÃâÀ» ÅëÇØ, ÀÌ °¡»óÈ£½ºÆ®¿¡¼
½ÇÇàÁßÀÎ ´Ù¸¥ À¥¾îÇø®ÄÉÀ̼ǿ¡ ´ëÇÑ ¿äûµð½ºÆÐÃÄ(request dispatcher)¸¦
¼º°øÀûÀ¸·Î ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. º¸¾È»óÀÇ ÀÌÀ¯·Î false(µðÆúÆ®)·Î
ÁöÁ¤Çϸé getContext()´Â ¾ðÁ¦³ª nullÀ»
¹ÝȯÇÏ°Ô µË´Ï´Ù.
| docBase |
ÀÌ À¥¾îÇø®ÄÉÀ̼ǿ¡ ´ëÇÑ Document Base
(Context Root·Îµµ ¾Ë·ÁÁ® ÀÖ½À´Ï´Ù) µð·ºÅ丮, ¶Ç´Â À¥¾îÇø®ÄÉÀ̼Ç
¾ÆÄ«ÀÌºê ÆÄÀÏÀÇ °æ·Î¸í(À¥¾îÇø®ÄÉÀ̼ÇÀ» WAR ÆÄÀÏ·Î Á÷Á¢ ½ÇÇàÇÏ´Â °æ¿ì)À»
³ªÅ¸³À´Ï´Ù. ÀÌ µð·ºÅ丮³ª WAR ÆÄÀÏ¿¡¿¡ ´ëÇÑ Àý´ë°æ·Î¸íÀ» ÁöÁ¤ÇÒ ¼öµµ ÀÖ°í,
ÀÌ Context°¡ Á¤ÀÇµÈ HostÀÇ
appBase µð·ºÅ丮¿¡ ´ëÇÑ »ó´ë°æ·Î¸íÀ» ÁöÁ¤ÇÒ ¼öµµ
ÀÖ½À´Ï´Ù.
| override |
ÀÌ Context°¡ Á¤ÀÇµÈ HostÀÇ
DefaultContext¿¡ Á¤ÀÇµÈ °¢ ¼³Á¤³»¿ëÀ»,
ÀÌ Context ¿¤¸®¸ÕÆ®¿¡¼ ÀçÁ¤ÀÇ(override) ÇÒ ¼ö ÀÖµµ·Ï ÇÏ·Á¸é
true·Î ÁöÁ¤ÇÕ´Ï´Ù. µðÆúÆ®·Î´Â DefaultContext ¿¤¸®¸ÕÆ®ÀÇ
¼³Á¤ÀÌ »ç¿ëµÇµµ·Ï µÇ¾î ÀÖ½À´Ï´Ù.
| privileged |
true·Î ¼³Á¤Çϸé ÀÌ ÄÁÅØ½ºÆ®´Â
°ü¸®ÀÚ¼ºí¸´(manager servlet) °°Àº ÄÁÅ×ÀÌ³Ê ¼ºí¸´À» »ç¿ëÇÒ ¼ö
ÀÖ½À´Ï´Ù.
| path |
ÀÌ À¥¾îÇø®ÄÉÀ̼ÇÀÇ ÄÁÅØ½ºÆ® °æ·Î(context path)¸¦ ³ªÅ¸³»¸ç,
°¢ ¿äû URIÀÇ ½ÃÀۺκÐÀÌ ÄÁÅØ½ºÆ® °æ·Î¿Í °°À» ¶§ ÇØ´ç À¥¾îÇø®ÄÉÀ̼ÇÀÌ
±× ¿äûÀ» ó¸®ÇÏ°Ô µË´Ï´Ù. ÇϳªÀÇ Æ¯Á¤ Host
³»ÀÇ ÄÁÅØ½ºÆ® °æ·ÎµéÀº ¸ðµÎ °¢°¢ À¯ÀÏÇØ¾ß ÇÕ´Ï´Ù. ¸¸¾à ÄÁÅØ½ºÆ® °æ·Î¸¦
ºó ½ºÆ®¸µ("")À¸·Î ÁöÁ¤Çϸé, ÀÌ Context´Â ÀÌ Host¿¡ ´ëÇÑ µðÆúÆ®
À¥¾îÇø®ÄÉÀ̼ÇÀ¸·Î Á¤ÀÇµÈ °ÍÀÔ´Ï´Ù. µðÆúÆ® À¥¾îÇø®ÄÉÀ̼ÇÀº ´Ù¸¥
Context µé¿¡ ÇØ´çµÇÁö ¾Ê´Â ¸ðµç ¿äûÀ» ó¸®ÇÒ °ÍÀÔ´Ï´Ù.
| reloadable |
true·Î ÁöÁ¤Çϸé, Catalina´Â
/WEB-INF/classes/¿Í
/WEB-INF/lib ¾È Ŭ·¡½º µéÀÇ º¯°æ¿©ºÎ¸¦ °¨½ÃÇÏ´Ù°¡,
º¯°æÀÌ ¹ß°ßµÇ¸é À¥¾îÇø®ÄÉÀ̼ÇÀ» ÀÚµ¿À¸·Î ÀçÀûÀç(reload)ÇÕ´Ï´Ù.
ÀÌ ±â´ÉÀº °³¹ßÁß¿¡´Â ¸Å¿ì À¯¿ëÇÏÁö¸¸ ¾ó¸¶°£ÀÇ ½ÇÇàºÎÇÏ(runtime overhead)°¡
¹ß»ýÇϹǷÎ, ½ÇÁ¦ ¿î¿µÇÒ ¿ëµµ·Î ¾îÇø®ÄÉÀ̼ÇÀ» ¹èÄ¡(deploy)ÇÒ ¶§´Â
»ç¿ëÇÏÁö ¾Êµµ·Ï ÇÕ´Ï´Ù. ±×·¯³ª ÀÌ¹Ì ¹èÄ¡°¡ ³¡³ ¾îÇø®ÄÉÀ̼ÇÀÌ¶óµµ Manager À¥¾îÇø®ÄÉÀ̼ÇÀ» ÀÌ¿ëÇϸé
ÇÊ¿äÇÒ ¶§ ÀçÀûÀç Çϵµ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù.
| wrapperClass |
ÀÌ Context·Î °ü¸®ÇÒ ¼ºí¸´ µé¿¡ ´ëÇØ »ç¿ëÇÒ
org.apache.catalina.Wrapper ±¸Çöü Ŭ·¡½ºÀÇ Java
Ŭ·¡½º¸íÀÔ´Ï´Ù. ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é Ç¥ÁذªÀÌ »ç¿ëµË´Ï´Ù.
|
|
| Ç¥Áر¸Çöü(Standard Implementation) |
ContextÀÇ Ç¥Áر¸Çöü Ŭ·¡½º´Â
org.apache.catalina.core.StandardContext ÀÔ´Ï´Ù.
ÀÌ Å¬·¡½º´Â À§¿¡ ³ª¿ÇÑ °øÅë¼Ó¼º ¿Ü¿¡µµ ´ÙÀ½°ú °°Àº Ãß°¡ÀûÀÎ ¼Ó¼ºÀ»
Á¦°øÇÕ´Ï´Ù:
| ¼Ó¼º | ¼³¸í |
|---|
debug |
ÀÌ Context°¡ ÇØ´ç Logger¿¡
µð¹ö±ë ·Î±×¸¦ Ãâ·ÂÇÏ´Â »ó¼¼¼öÁØÀ» ÀǹÌÇÕ´Ï´Ù. ¼ýÀÚ°¡ ³ôÀ» ¼ö·Ï ´õ ÀÚ¼¼ÇÑ
Ãâ·ÂÀ» »ý¼ºÇÕ´Ï´Ù. ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é, µð¹ö±ë »ó¼¼¼öÁØÀÇ µðÆúÆ® °ªÀº
0 ÀÔ´Ï´Ù.
| swallowOutput |
ÀÌ °ªÀÌ true À̸é, À¥¾îÇø®ÄÉÀ̼ǿ¡¼ System.out°ú
System.err À¸·Î º¸³»Áö´Â ¹ÙÀÌÆ® Ãâ·ÂÀº ¸ðµÎ À¥¾îÇø®ÄÉÀ̼ÇÀÇ
·Î°Å(logger)·Î ÀçÁöÁ¤(redirect)µË´Ï´Ù. ÀÌ °ªÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é
false·Î ÀνÄÇÕ´Ï´Ù.
| useNaming |
ÀÌ À¥¾îÇø®ÄÉÀ̼ǿ¡¼ Java2 Enterprise Edition (J2EE)
Ç÷§Æû ±Ô¾à¿¡ ¸Â´Â JNDI InitialContext¸¦
»ç¿ë°¡´ÉÇÏ°Ô Çϵµ·Ï ¼³Á¤ÇÏ·Á¸é true(µðÆúÆ®°ª)·Î
ÁöÁ¤ÇÕ´Ï´Ù.
| workDir |
ÀÌ Context¿¡¼ »ç¿ëÇÒ Àӽà µð·ºÅ丮¿¡ ´ëÇÑ °æ·Î¸íÀÔ´Ï´Ù. ÀÌ µð·ºÅ丮´Â
°ü·Ã À¥¾îÇø®ÄÉÀ̼ÇÀÇ ¼ºí¸´µéÀÌ Àӽ÷ΠÀбâ-¾²±â ÀÛ¾÷À» ÇÏ´Â ¿ëµµ·Î
»ç¿ëÇÕ´Ï´Ù. À¥¾îÇø®ÄÉÀ̼ÇÀÇ ¼ºí¸´ µéÀº À̸§ÀÌ
javax.servlet.context.tempdirÀÎ ¼ºí¸´-ÄÁÅØ½ºÆ®
¼Ó¼º(ŸÀÔÀº java.io.File)À» ÅëÇØ ÀÌ µð·ºÅ丮¸¦ º¼ ¼ö ÀÖÀ¸¸ç,
ÀÌ ³»¿ëÀº ¼ºí¸´ ½ºÆå¿¡ ±â¼úµÇ¾î ÀÖ½À´Ï´Ù. ÁöÁ¤ÇÏÁö ¾ÊÀº °æ¿ì¿¡´Â ÀûÀýÇÑ
µð·ºÅ丮°¡ $CATALINA_HOME/work ¾Æ·¡¿¡ Á¦°øµË´Ï´Ù.
|
|
|
| ³»ºÎ ÄÄÆ÷³ÍÆ®(Nested Components) |
¾Æ·¡ÀÇ À¯Æ¿¸®Æ¼ ÄÄÆ÷³ÍÆ®µéÀº ÇØ´ç ¿¤¸®¸ÕÆ®¸¦ Context
¿¤¸®¸ÕÆ® ¾È¿¡ ÃÖ´ë Çϳª±îÁö Æ÷ÇÔ½Ãų ¼ö ÀÖ½À´Ï´Ù:
- Loader -
ÀÌ À¥¾îÇø®ÄÉÀ̼ÇÀÇ ¼ºí¸´°ú ºó Ŭ·¡½ºµéÀ» ·ÎµåÇÏ´Â
À¥¾îÇø®ÄÉÀÌ¼Ç Å¬·¡½º ·Î´õ¸¦ ¼³Á¤ÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î
µðÆúÆ®·Î ¼³Á¤µÇ¾î ÀÖ´Â °ÍÀ» ±×³É »ç¿ëÇÏ´Â °ÍÀ¸·Î ÃæºÐÇÕ´Ï´Ù.
- Logger -
ÀÌ Context¿¡ ´ëÇÑ ¸ðµç ·Î±× ¸Þ½ÃÁö¸¦ ¹Þ¾Æ¼ ó¸®ÇÒ
·Î°Å(logger)¸¦ ¼³Á¤ÇÕ´Ï´Ù. ÀÌ ·Î°Å´Â
ServletContext.log()
È£ÃâÀ» ÅëÇØ ±â·ÏµÉ ¾îÇø®ÄÉÀÌ¼Ç ·Î±× ¸Þ½ÃÁöµµ ó¸®ÇÕ´Ï´Ù.
- Manager -
ÀÌ À¥¾îÇø®ÄÉÀ̼ÇÀÇ HTTP ¼¼¼ÇÀ» »ý¼º/ÆÄ±«/À¯Áö ½Ã۴µ¥
»ç¿ëµÉ ¼¼¼Ç°ü¸®ÀÚ¸¦ ¼³Á¤ÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î µðÆúÆ®·Î
¼³Á¤µÇ¾î ÀÖ´Â ¼¼¼Ç°ü¸®ÀÚ¸¦ ±×³É »ç¿ëÇÏ´Â °ÍÀ¸·Î ÃæºÐÇÕ´Ï´Ù.
- Realm -
ÀÌ À¥¾îÇø®ÄÉÀ̼Ǹ¸À» À§ÇÑ »ç¿ëÀÚ/¿ªÇÒ µ¥ÀÌÅͺ£À̽º¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â
¿µ¿ª(realm)À» ¼³Á¤ÇÕ´Ï´Ù. ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ÀÌ À¥¾îÇø®ÄÉÀ̼ÇÀº
ÀÌ Context°¡ Á¤ÀÇµÈ Host³ª
Engine ¿¡ Á¤ÀÇµÈ RealmÀ» »ç¿ëÇÒ
°ÍÀÔ´Ï´Ù.
- Resources -
ÀÌ À¥¾îÇø®ÄÉÀ̼ǿ¡ °ü·ÃµÈ Á¤Àû ÀÚ¿ø¿¡ Á¢±ÙÇϴµ¥ »ç¿ëÇÒ ÀÚ¿ø°ü¸®ÀÚ¸¦
¼³Á¤ÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î µðÆúÆ®·Î ¼³Á¤µÇ¾î ÀÖ´Â ÀÚ¿ø°ü¸®ÀÚ¸¦ ±×³É
»ç¿ëÇÏ´Â °ÍÀ¸·Î ÃæºÐÇÕ´Ï´Ù.
|
| Ưº°±â´É(Special Features) |
| ÄÁÅØ½ºÆ®ÀÇ ÀÚµ¿¼³Á¤(Automatic Context Configuration) |
¸¸¾à Ç¥ÁØ Context ±¸Çöü¸¦ »ç¿ëÇϰí ÀÖ´Ù¸é,
Catalina°¡ ±âµ¿µÉ ¶§ ¶Ç´Â ÀÌ À¥¾îÇø®ÄÉÀ̼ÇÀÌ ÀçÀûÀçµÉ ¶§ ´ÙÀ½ÀÇ
¼³Á¤´Ü°è µéÀÌ ÀÚµ¿À¸·Î ¼öÇàµË´Ï´Ù. ÀÌ ±â´ÉÀº Ưº°ÇÑ ¼³Á¤ÀÌ ÇÊ¿äÄ¡
¾Ê½À´Ï´Ù.
- ¸¸ÀÏ Loader ¿¤¸®¸ÕÆ®¸¦ ¼±¾ðÇÏÁö ¾Ê¾Ò´Ù¸é
Ç¥ÁØ À¥¾îÇø®ÄÉÀÌ¼Ç Å¬·¡½º·Î´õ·Î ¼³Á¤µË´Ï´Ù.
- ¸¸ÀÏ Manager ¿¤¸®¸ÕÆ®¸¦ ¼±¾ðÇÏÁö ¾Ê¾Ò´Ù¸é
Ç¥ÁØ ¼¼¼Ç°ü¸®ÀÚ·Î ¼³Á¤µË´Ï´Ù.
- ¸¸ÀÏ Resources ¿¤¸®¸ÕÆ®¸¦ ¼±¾ðÇÏÁö ¾Ê¾Ò´Ù¸é
Ç¥ÁØ ÀÚ¿ø°ü¸®ÀÚ·Î ¼³Á¤µË´Ï´Ù.
conf/web.xml¿¡ ³ª¿µÈ À¥¾îÇø®ÄÉÀÌ¼Ç ÇÁ·ÎÆÛƼµéÀÌ ÀÌ
À¥¾îÇø®ÄÉÀ̼ÇÀÇ µðÆúÆ® °ªÀ¸·Î 󸮵˴ϴÙ. ÀÌ ÆÄÀÏÀº µðÆúÆ®
¸ÅÇÎ(*.jsp È®ÀåÀÚ¸¦ ÇØ´ç JSP ¼ºí¸´À¸·Î ¸ÅÇÎÇÏ´Â µîÀÇ),
±×¸®°í ¸ðµç À¥¾îÇø®ÄÉÀ̼ǿ¡ Àû¿ëµÉ ´Ù¸¥ Ç¥ÁØ ±â´ÉµéÀ» Á¤ÇÏ´Â µ¥
»ç¿ëµË´Ï´Ù.
- ÀÌ À¥¾îÇø®ÄÉÀ̼ǿ¡ ´ëÇÑ
/WEB-INF/web.xml ÆÄÀÏ¿¡ ³ª¿µÈ
À¥¾îÇø®ÄÉÀÌ¼Ç ÇÁ·ÎÆÛƼµéÀÌ Ã³¸®µË´Ï´Ù(ÀÌ ÆÄÀÏÀÌ ÀÖ´Â °æ¿ì).
- ¸¸ÀÏ ´ç½ÅÀÇ À¥¾îÇø®ÄÉÀ̼ǿ¡¼ »ç¿ëÀÚ ÀÎÁõÀ» ¿ä±¸ÇÏ´Â º¸¾ÈÁ¶°ÇÀ»
ÁöÁ¤Çß´Ù¸é, ´ç½ÅÀÌ ¼±ÅÃÇÑ ·Î±×ÀÎ ¹æ¹ýÀ» ÀûÀýÈ÷ ±¸ÇöÇÑ
ÀÎÁõÀÚ(Authenticator)°¡ ¼³Á¤µË´Ï´Ù.
|
| ÀÚ¿ø ÆÄ¶ó¹ÌÅÍ(Resource Parameters) |
ÀÌ ¿¤¸®¸ÕÆ®´Â À¥¾îÇø®ÄÉÀ̼ǿ¡¼ ÇØ´ç ÀÚ¿øÀÇ À̸§¿¡ ´ëÇØ JNDI Ž»öÀ»
¼öÇàÇÒ ¶§, °´Ã¼¸¦ ¹ÝȯÇϴµ¥ »ç¿ëÇÒ ÀÚ¿ø°ü¸®ÀÚ(¶Ç´Â °´Ã¼ÆÑÅ丮)¸¦ ¼³Á¤ÇÏ´Â
¿ªÇÒÀ» ÇÕ´Ï´Ù. $CATALINA_HOME/conf/server.xmlÀÇ
<Context>³ª
<DefaultContext> ¿¤¸®¸ÕÆ® ³»ÀÇ
<Resource> ¿¤¸®¸ÕÆ®·Î ÁöÁ¤µÈ ¸ðµç ÀÚ¿ø À̸§,
±×¸®°í/¶Ç´Â À¥¾îÇø®ÄÉÀÌ¼Ç ¹èÄ¡ µð½ºÅ©¸³ÅÍ¿¡¼
<resource-ref> ³ª
<resource-env-ref> ¿¤¸®¸ÕÆ®¿¡¼
¼±¾ðµÈ ¸ðµç ÀÚ¿ø À̸§¿¡ ´ëÇØ¼´Â ¹Ýµå½Ã
ÀÚ¿ø ÆÄ¶ó¹ÌÅÍ(resource parameters)¸¦ Á¤ÀÇÇØ¾ß ±× ÀÚ¿ø¿¡ ¼º°øÀûÀ¸·Î
¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÚ¿ø ÆÄ¶ó¹ÌÅÍ´Â À̸§À¸·Î Á¤ÀǵǸç, Á¤È®ÇÏ°Ô ¾î¶² ÆÄ¶ó¹ÌÅÍ À̸§µéÀÇ ÁýÇÕÀ»
Áö¿øÇϴ°¡´Â ´ç½ÅÀÌ »ç¿ëÇϰí ÀÖ´Â ÀÚ¿ø°ü¸®ÀÚ(¶Ç´Â °´Ã¼ÆÑÅ丮)¿¡ µû¶ó ´Þ¶óÁý´Ï´Ù.
Áï ÇØ´ç ÆÑÅ丮 Ŭ·¡½ºÀÇ JavaBeans ÇÁ·ÎÆÛƼ Áß ¼³Á¤°¡´ÉÇÑ(settable) ÇÁ·ÎÆÛƼÀÇ
À̸§°ú ÀÏÄ¡ÇØ¾ß ÇÕ´Ï´Ù. JNDI ±¸Çöü´Â ÁöÁ¤ÇÑ ÆÑÅ丮 Ŭ·¡½ºÀÇ ÀνºÅϽº¿¡ ´ëÇØ
JavaBeansÀÇ ¸ðµç ÇØ´ç ¼Ó¼º ¼³Á¤¸Þ¼Òµå¸¦ È£ÃâÇÔÀ¸·Î½á ¸ðµç ¼³Á¤À» ¸¶Ä£ ´ÙÀ½¿¡¾ß,
ÀÌ ÆÑÅ丮 ÀνºÅϽº¸¦ JNDI lookup() È£ÃâÀ» ÅëÇØ »ç¿ë°¡´ÉÇϵµ·Ï
ÇÒ °ÍÀÔ´Ï´Ù.
¿¹·Î JDBC µ¥ÀÌÅÍ ¼Ò½º¿¡ ´ëÇÑ ÀÚ¿ø ÆÄ¶ó¹ÌÅÍ ¼³Á¤Àº ¾Æ·¡¿Í °°ÀÌ µË´Ï´Ù:
 |  |  |  |
<Context ...>
...
<ResourceParams name="jdbc/EmployeeDB">
<parameter>
<name>driverClassName</name>
<value>org.hsql.jdbcDriver</value>
</parameter>
<parameter>
<name>url</name>
</value>jdbc:HypersonicSQL:database</value>
</parameter>
<parameter>
<name>user</name>
<value>dbusername</value>
</parameter>
<parameter>
<name>password</name>
<value>dbpassword</value>
</parameter>
</ResourceParams>
...
</Context>
|  |  |  |  |
¸¸¾à ƯÁ¤ ÀÚ¿ø ŸÀÔ¿¡ ´ëÇØ ÆÑÅ丮 Ŭ·¡½ºÀÇ Java Ŭ·¡½º¸íÀ» ÁöÁ¤ÇÒ Çʿ䰡
ÀÖ´Ù¸é, <ResourceParams> ¿¤¸®¸ÕÆ® ³»ÀÇ
<parameter> Ç׸ñ¿¡ factory¶ó´Â À̸§À»
»ç¿ëÇÏ¸é µË´Ï´Ù.
<ResourceParams> ¿¤¸®¸ÕÆ®°¡ °¡Áú ¼ö ÀÖ´Â ¼Ó¼ºÀº
´ÙÀ½°ú °°½À´Ï´Ù:
| ¼Ó¼º | ¼³¸í |
|---|
name |
¼³Á¤ÇÒ ÀÚ¿øÀÇ À̸§À̸ç, java:comp/env ÄÁÅØ½ºÆ®¿¡ ´ëÇÑ
»ó´ëÀûÀÎ À̸§ÀÌ µË´Ï´Ù. ÀÌ À̸§Àº
$CATALINA_HOME/conf/server.xml ³»¿¡
<Resource> ¿¤¸®¸ÕÆ®·Î Á¤ÀÇµÈ ÀÚ¿ø, ±×¸®°í/¶Ç´Â
À¥¾îÇø®ÄÉÀÌ¼Ç ¹èÄ¡ µð½ºÅ©¸³ÅÍ ³»¿¡ <resource-ref>
¶Ç´Â <resource-env-ref>·Î ÂüÁ¶µÇ´Â ÀÚ¿øÀÇ À̸§°ú
¹Ýµå½Ã ÀÏÄ¡ÇØ¾ß ÇÕ´Ï´Ù.
|
|
| ÀÚ¿ø¸µÅ©(Resource Links) |
ÀÌ ¿¤¸®¸ÕÆ®´Â ¾î¶² Àü¿ª JNDI ÀÚ¿øÀ¸·ÎÀÇ ¸µÅ©¸¦ »ý¼ºÇϴµ¥ »ç¿ëÇÕ´Ï´Ù.
±× ¿¬°á¸í¿¡ ´ëÇÏ¿© JNDI Ž»öÀ» ½ÇÇàÇÏ¸é ¸µÅ©µÈ Àü¿ªÀÚ¿øÀÌ ¹ÝȯµË´Ï´Ù.
¿¹¸¦ µé¾î ´ÙÀ½°ú °°ÀÌ ÀÚ¿ø¸µÅ©¸¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù:
 |  |  |  |
<Context ...>
...
<ResourceLink name="linkToGlobalResource"
global="simpleValue"
type="java.lang.Integer"
...
</Context>
|  |  |  |  |
<ResourceLink> ¿¤¸®¸ÕÆ®°¡ °¡Áú ¼ö ÀÖ´Â ¼Ó¼ºÀº
´ÙÀ½°ú °°½À´Ï´Ù:
| ¼Ó¼º | ¼³¸í |
|---|
global |
Àü¿ª JNDI ÄÁÅØ½ºÆ®³»ÀÇ ¸µÅ©µÈ Àü¿ªÀÚ¿øÀÇ À̸§.
| name |
»ý¼ºÇÒ ÀÚ¿ø¸µÅ©ÀÇ À̸§À̸ç, java:comp/env¿¡ ´ëÇÑ
»ó´ëÀûÀÎ À̸§ÀÔ´Ï´Ù.
| type |
ÀÌ ÀÚ¿ø¸µÅ©¿¡ ´ëÇØ Ž»öÀ» ½ÇÇàÇÒ ¶§ À¥¾îÇø®ÄÉÀ̼ÇÀÌ ±â´ëÇÏ´Â
¿ÏÀüÇÑ Java Ŭ·¡½º¸í.
|
|
|
|