TomcatÀº Java Servlet 2.2 ¹× JSP 1.1À» ±¸ÇöÇÏ¿© ¾ÆÆÄÄ¡ ¹× ¿©·¯ À¥½á¹ö¿¡¼ ÀÌ¿ëÇÏ°íÀÚ ÇÏ´Â ÇÁ·ÎÁ§Æ®ÀÌ´Ù. ÀÌ ±Û¿¡¼´Â ¾ÆÆÄÄ¡ À¥½á¹ö¿¡¼ Tomcat 3.1À» »ç¿ëÇϱâ À§ÇÑ °úÁ¤À» ¼³¸íÇÑ´Ù.
TomcatÀº À¥½á¹ö¿¡¼ ÀÚ¹Ù ½áºí¸´°ú JSP¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÏ·Á´Â ÇÁ·ÎÁ§Æ®ÀÌ´Ù. »ç½Ç TomcatÀº Jakarta ÇÁ·ÎÁ§Æ®¿¡ ¼ÓÇÑ ÀÛÀº ÇÁ·ÎÁ§Æ®ÀÌ°í, Jakarta´Â ÀÚ¹Ù ±â¹ÝÀÇ º¸´Ù Æ÷°ýÀûÀÎ Ç÷§ÆûÀ» Á¦°øÇÏ´Â °ÍÀ» ¸ñÇ¥·Î ÁøÇàÁßÀÌ´Ù.
ÇöÀç Tomcat ¿Ü¿¡ ¾ÆÆÄÄ¡ À¥½á¹ö¿¡¼ ÀÚ¹Ù ½áºí¸´À» ¾²´Â ¹æ¹ý Áß °¡Àå ³Î¸® ¾²ÀÌ´Â °ÍÀº JServÀÏ °ÍÀÌ´Ù. ÇÏÁö¸¸ JServ´Â ¹Ýµå½Ã JSDK 2.0À» »ç¿ëÇØ¾ß ÇÑ´Ù´Â Á¦¾àÀÌ ÀÖ°í, JSP¸¦ ¾²±â À§Çؼ´Â GNUJSP¿Í °°Àº º°°³ÀÇ ÇÁ·Î±×·¥À» ÇÊ¿ä·Î ÇÑ´Ù. ¹Ý¸é TomcatÀº Java Servlet 2.2¿Í JSP 1.1À» µ¿½Ã¿¡ Áö¿øÇÏ°í ÀÖÀ¸¸ç, JServÀÇ °³¹ßÀÚµéÀº ¹°·Ð SunÀ̳ª IBM°ú °°Àº ±â¾÷¿¡¼µµ Âü¿©ÇÏ°í ÀÖÀ¸¹Ç·Î ¾ÕÀ¸·Î´Â JServº¸´Ù´Â TomcatÀ» ÇʵηΠÇÑ Jakarta°¡ ´õ¿í »¡¸® ¼ºÀåÇÒ °ÍÀÌ´Ù.
¾ÆÆÄÄ¡¿¡¼ TomcatÀ» »ç¿ëÇÏ·Á¸é ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÇÊ¿äÇÏ´Ù.
Tomcat 3.1 (jakarta-tomcat.tar.gz)
¾ÆÆÄÄ¡ À¥½á¹ö 1.3.9 ÀÌ»ó
mod_jserv.so
JDK 1.1 ÀÌ»ó
$ apxs -c -o mod_jserv.so *.c¸¸ÀÏ apxs¸¦ ãÁö ¸øÇÑ´Ù¸é ¾ÆÆÄÄ¡¸¦ ¼³Ä¡ÇÑ °÷ÀÇ binµð·ºÅ丮¿¡ ÀÖÀ¸¹Ç·Î °æ·Î¸¦ ¸ðµÎ ½á ÁÖ¾î ½ÇÇà½ÃÅ°¸é µÈ´Ù.
¾ÆÆÄÄ¡´Â DSO¸¦ Áö¿øÇϵµ·Ï ÄÄÆÄÀϵǾî¾ß mod_jserv.soÀ» µ¿ÀûÀ¸·Î ·ÎµåÇÒ ¼ö ÀÖ´Ù. ¹èÆ÷º»¿¡ Æ÷ÇÔµÈ °ÍÀ̶ó¸é ´ëºÎºÐ DSO¸¦ Áö¿øÇϵµ·Ï µÇ¾î ÀÖÀ¸¹Ç·Î ¹®Á¦°¡ ¾øÀ¸³ª Á÷Á¢ ÄÄÆÄÀÏÀ» ÇÏ´Â °æ¿ì¶ó¸é configure ½ÇÇà½Ã¿¡ ¹Ýµå½Ã --enable-module=so ¿É¼ÇÀ» ÁÖ¾î¾ß ÇÑ´Ù.
TomcatÀ» »ç¿ëÇÏ·Á¸é ¸ÕÀú ¾ÆÆÄÄ¡°¡ Á¦´ë·Î ¼³Ä¡µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. ÀÌ ±Û¿¡¼´Â ¾ÆÆÄÄ¡°¡ /usr/local/apache¿¡ ¼³Ä¡µÇ¾î ÀÖ´Â °ÍÀ¸·Î °¡Á¤ÇÏ°Ú´Ù.
TomcatÀº ÀÚ¹Ù·Î ÀÛ¼ºµÇ¾î ÀÖ¾î¼ ÀÌ¹Ì ÄÄÆÄÀÏ µÈ »óÅ·Π¹èÆ÷µÇ¹Ç·Î µû·Î ÄÄÆÄÀÏ °úÁ¤À» °ÅÄ¡Áö ¾Ê¾Æµµ µÈ´Ù. Àû´çÇÑ °÷¿¡ jakarta-tomcat.tar.gzÀÇ ¾ÐÃàÀ» Ǫ´Â °Í¸¸À¸·Î ¼³Ä¡°¡ ³¡³´Ù. /usr/local¿¡¼ ¾ÐÃàÀ» Ç®¾ú´Ù¸é /usr/local/jakarta-tomcatÀ̶õ µð·ºÅ丮°¡ »ý°åÀ» °ÍÀÌ´Ù.
Tomcat°ú ¾ÆÆÄÄ¡°¡ ¼·Î Åë½ÅÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁÖ´Â ¸ðµâÀÌ mod_jserv.soÀÌ´Ù. ÀÌ ÆÄÀÏÀ» ¾ÆÆÄÄ¡ÀÇ µ¿Àû ¸ðµâÀ» ÀúÀåÇÏ´Â µð·ºÅ丮·Î º¹»çÇÏ°í ¾ÆÆÄÄ¡¸¦ ´Ù½Ã ½ÇÇà½ÃÅ°¸é ÀÚµ¿À¸·Î ¸ðµâÀ» ÀоîµéÀÌ°Ô µÈ´Ù. µ¿Àû ¸ðµâÀ» ÀúÀåÇÏ´Â µð·ºÅ丮´Â ¾ÆÆÄÄ¡°¡ ¼³Ä¡µÈ °÷ ¹Ø¿¡ ÀÖ´Â libexecÀ̶õ µð·ºÅ丮ÀÌ´Ù. /usr/local/apache¿¡ ¾ÆÆÄÄ¡¸¦ ¼³Ä¡Çß´Ù¸é /usr/local/apache/libexecÀÌ ¿©±â¿¡ ÇØ´çÇÑ´Ù. ¹èÆ÷º»¿¡ Æ÷ÇÔµÈ °ÍÀº ´Ù¸¥ µð·ºÅ丮¸¦ »ç¿ëÇϱ⵵ ÇϹǷΠ¾Ë¸ÂÀº µð·ºÅ丮¸¦ ã¾Æ¾ß ÇÑ´Ù. /usr/lib/apache°¡ ÀÖ´Ù¸é ÀÌ°÷À» ÀÌ¿ëÇÏ°í, ±×·¸Áö ¾Ê´Ù¸é mod_*.so ÇüÅÂÀÇ ÆÄÀϵéÀÌ ÀÖ´Â °÷À» ãµµ·Ï ÇÑ´Ù.
ÀÌÁ¦ ¼³Á¤ ÆÄÀÏÀ» Ãß°¡ÇÒ Â÷·ÊÀÌ´Ù. TomcatÀÇ ¼³Á¤ ÆÄÀÏÀº TomcatÀ» ¼³Ä¡ÇÑ °÷ÀÇ conf µð·ºÅ丮 ¾È¿¡ ÀÖ´Ù. tomcat.conf´Â ¾ÆÆÄÄ¡¸¦ À§ÇÑ °ÍÀÌ°í, server.xmlÀÌ TomcatÀ» À§ÇÑ °ÍÀÌ´Ù. tomcat.conf´Â ¾ÆÆÄÄ¡ÀÇ httpd.confÀÇ ¸Ç ³¡¿¡¼ ´ÙÀ½°ú °°ÀÌ ºÒ·¯µéÀÌ¸é µÈ´Ù.
Include /usr/local/jakarta/jakarta-tomcat/conf/tomcat.conf
Tomcat°ú ¾ÆÆÄÄ¡ÀÇ Åë½ÅÀ» À§Çؼ´Â º°°³ÀÇ Æ÷Æ®°¡ ÇÊ¿äÇѵ¥, ÀÌ Æ÷Æ® ¹øÈ£´Â tomcat.conf¿Í server.xml ¾çÂÊ¿¡ ¸í½ÃÇØ ÁÖ¾î¾ß ÇÑ´Ù. tomcat.conf¿¡´Â
ApJServDefaultPort 8007°ú °°ÀÌ µÇ¾î ÀÖ°í, server.xml¿¡´Â
<Parameter name="handler" value="org.apache.tomcat.service.connector.Ajp12ConnectionHandler"/> <Parameter name="port" value="8007"/>°ú °°ÀÌ µÇ¾î ÀÖ´Ù. ¿©±â¼ 8007ÀÌ Æ÷Æ® ¹øÈ£À̸ç, ÀÌ °ªÀ» º¯°æÇÒ °æ¿ì µÎ ÆÄÀÏÀÇ °ªÀÌ ÀÏÄ¡ÇØ¾ß ÇÑ´Ù. ÀÌ ¿Ü¿¡ server.xml¿¡´Â Æ÷Æ® ¹øÈ£¸¦ Àû´Â °÷ÀÌ Çϳª ´õ ÀÖ´Ù.
<Parameter name="handler" value="org.apache.tomcat.service.http.HttpConnectionHandler"/> <Parameter name="port" value="8080"/>ÀÚ¼¼È÷ º¸¸é ù ÁÙÀÇ value ºÎºÐÀÌ ´Ù¸¥ °ÍÀ» ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÀÌ Æ÷Æ®´Â TomcatÀÌ ÀÚüÀûÀ¸·Î °®°í ÀÖ´Â HTTP ½á¹ö¸¦ À§ÇÑ °ÍÀÌ´Ù. ÀÌ °ªÀº ¾Õ¿¡¼ Á¤ÇØÁØ Æ÷Æ® ¹øÈ£´Â ¹°·Ð ¾ÆÆÄÄ¡ÀÇ Æ÷Æ® ¹øÈ£¿Íµµ ´Þ¶ó¾ß ÇÑ´Ù.
¸ÕÀú ¾ÆÆÄÄ¡¸¦ ´Ù½Ã ½ÇÇà½ÃÅ°°í, ¾ÆÆÄÄ¡ ÀÚüÀÇ µ¿ÀÛ¿¡ ¾Æ¹« ¹®Á¦°¡ ¾ø´Â°¡¸¦ È®ÀÎÇØ¾ß ÇÑ´Ù. ¾ÆÆÄÄ¡°¡ ¹®Á¦¾øÀÌ ½ÇÇàµÈ´Ù¸é TomcatÀ» ½ÇÇà½Ãų ¼ö ÀÖ´Ù. TomcatÀ» ¼³Ä¡ÇÑ °÷ÀÇ bin µð·ºÅ丮¿¡ º¸¸é startup.shÀ̶õ ÆÄÀÏÀÌ Àִµ¥, ÀÌ°ÍÀÌ TomcatÀ» ½ÇÇà½ÃÅ°´Â ÆÄÀÏÀÌ´Ù. ±× Àü¿¡ µÎ °¡Áö ȯ°æ º¯¼ö¸¦ ¼³Á¤ÇØ ÁÖ¾î¾ß Çϴµ¥, Çϳª´Â TomcatÀÌ ¼³Ä¡µÈ °÷À» °¡¸®Å°´Â TOMCAT_HOMEÀÌ°í, ¶Ç Çϳª´Â ÀÚ¹Ù°¡ ¼³Ä¡µÈ °÷À» °¡¸®Å°´Â JAVA_HOMEÀÌ´Ù. TomcatÀ» /usr/local/jakarta¿¡¼ ¾ÐÃàÀ» Ç®¾ú´Ù¸é ±× ¹Ø¿¡ »ý±ä jakarta-tomcatÀÌ TOMCAT_HOMEÀÌ µÈ´Ù. JAVA_HOMEÀº ÀÚ¹Ù ½ÇÇà ȯ°æÀÌ ¼³Ä¡µÈ µð·ºÅ丮À̸ç, ½ÇÇà ÆÄÀÏÀÌ /usr/local/jdk/bin/java¶ó¸é /usr/local/jdk°¡ ±× °ªÀÌ µÈ´Ù.
¸ðµç ¼³Á¤ÀÌ ³¡³ª°í startup.shÀ» ½ÇÇà½ÃÄ×´Ù¸é À¥ºê¶ó¿ìÁ®·Î ´ÙÀ½ URLÀ» ¹æ¹®Çغ¸¶ó.
Çö ¹öÁ¯ÀÇ TomcatÀº °¡»ó È£½ºÆ® ±â´ÉÀ» Á¦°øÇÏÁö ¾Ê´Â´Ù. ¾ÆÆÄÄ¡ÀÇ °¡»ó È£½ºÆ® ±â´ÉÀ» ÀÌ¿ëÇؼ aa.webdox.co.kr°ú bb.webdox.co.krÀ» ¾²°í ÀÖ´Ù°í Çصµ TomcatÀº http://aa.webdox.co.kr/hello.jsp¿Í http://bb.webdox.co.kr/hello.jsp¸¦ ¸ðµÎ °°Àº ÆÄÀÏ·Î °£ÁÖÇÑ´Ù. À̸¦ ±Øº¹ÇÏ´Â ¹æ¹ýÀº °¢ °¡»ó È£½ºÆ®¸¶´Ù º°°³ÀÇ TomcatÀ» ½ÇÇàÇÏ´Â °ÍÀÌ´Ù. ±×·± ´ÙÀ½ ¾ÆÆÄÄ¡¿¡¼ °¡»ó È£½ºÆ®¿¡ µû¶ó ´Ù¸¥ TomcatÀ¸·Î Á¢¼ÓÇÏ°Ô ÇÏ¸é ¸¶Ä¡ TomcatÀÌ °¡»ó È£½ºÆ®¸¦ Áö¿øÇÏ´Â °Í°ú °°Àº È¿°ú¸¦ °¡Á®¿Ã ¼ö ÀÖ´Ù. ¹°·Ð ÀÌ ¹æ¹ýÀº °¡»ó È£½ºÆ® ¼ö ¸¸ÅÀÇ process°¡ ÇÊ¿äÇϹǷΠ±× ¼ö°¡ ³Ê¹« ¸¹´Ù¸é ¹®Á¦°¡ µÇ°ÚÁö¸¸ È£½ºÆà ¾÷ü°¡ ¾Æ´Ï¶ó¸é ±×·¸°Ô ¸¹Àº ¼öÀÇ °¡»ó È£½ºÆ®°¡ ÇÊ¿äÇÒ ÀÏÀº ¾øÀ¸¹Ç·Î ´ëºÎºÐÀÇ °æ¿ì ¹«³ÇÒ °ÍÀÌ´Ù. ±×¸®°í Tomcat °³¹ßÀڵ鵵 ÇϳªÀÇ Tomcat process¿¡¼ ¿©·¯ °¡»ó È£½ºÆ®¸¦ Áö¿øÇÏ´Â °ÍÀ» °í·ÁÇÏ°í ÀÖÀ¸¹Ç·Î Á¶¸¸°£ ÀÌ ±â´ÉÀÌ Tomcat¿¡ Æ÷ÇԵǸ®¶ó »ý°¢ÇÑ´Ù.
¿ì¼± ¾ÆÆÄÄ¡¿¡¼ °¡»ó È£½ºÆ® ±â´ÉÀ» ±¸ÇöÇϱâ À§Çؼ´Â °¡»ó È£½ºÆ®ÀÇ ¼ö¸¸Å TomcatÀ» ÀνºÅçÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î, aa.webdox.co.kr°ú bb.webdox.co.krdÀÇ µÎ °¡»ó È£½ºÆ®¸¦ À§ÇØ /usr/local/tomcats µð·ºÅ丮 ¾Æ·¡¿¡ µÎ °³ÀÇ TomcatÀ» ¾ÐÃà ÇØÁ¦ÇÏ°í µð·ºÅ丮 À̸§ Ãæµ¹À» ¸·±â À§ÇØ tomcat_aa, tomcat_bb½ÄÀ¸·Î À̸§À» ¹Ù²Û´Ù. ÀÌÁ¦, aa.webdox.co.krÀ» À§Çؼ´Â /usr/local/tomcats/tomcat_aa¸¦, bb.webdox.co.krÀ» À§Çؼ´Â /usr/local/tomcats/tomcat_bb¸¦ »ç¿ëÇϵµ·Ï ÇÏ°í Çϳª¾¿ ¼³Á¤ÇØ º¸ÀÚ.
°¢°¢ÀÇ Tomcat¿¡´Â conf µð·ºÅ丮 ¹Ø¿¡ tomcat.conf ÆÄÀÏÀÌ ÀÖ´Ù. °³º° È£½ºÆ® ¸¶´Ù tomcat.conf¸¦ ¼³Á¤ÇÒ ÇÊ¿ä°¡ ¾ø°í ¿ÀÁ÷ Çϳª¸¸ ¼³Á¤ÇÏ¸é µÈ´Ù. ¿©±â¼´Â tomcat_aa/conf/tomcat.conf ¸¦ ¼³Á¤Çϱâ·Î ÇÏÀÚ. ÀØÁö¸»¾Æ¾ß ÇÒ °ÍÀº ¼³Á¤Çϱâ·Î °áÁ¤ÇÑ ÇϳªÀÇ tomcat.conf ÆÄÀÏÀ» ²À ¾ÆÆÄÄ¡ ½á¹öÀÇ httpd.conf ÆÄÀÏ¿¡¼ ºÒ·¯µéÀÌ´Â °ÍÀÌ´Ù. ´ÙÀ½Ã³·³ ÇÑ´Ù.
Include /usr/local/tomcats/tomcat_aa/conf/tomcat.conf
ÀÌÁ¦ tomcat_aa/conf/tomcat.conf¿¡ °¡»ó È£½ºÆ® ȯ°æÀ» ´ÙÀ½Ã³·³ ¼³Á¤ÇØ ÁÖ¾î¾ß ÇÑ´Ù.
############################################################################### # Apache-Tomcat °¡»ó È£½ºÆ® ¼³Á¤ ÆÄÀÏ # ############################################################################### LoadModule jserv_module libexec/mod_jserv.so <IfModule mod_jserv.c> ApJServManual on ApJServDefaultProtocol ajpv12 ApJServSecretKey DISABLED ApJServMountCopy on ApJServLogLevel notice ### Change if you run tomcat on a different host #ApJServDefaultHost localhost #ApJServDefaultPort 8007 ### Virual Hosts NameVirtualHost 211.53.212.40 <VirtualHost 211.53.212.40> ServerName aa.webdox.co.kr DocumentRoot /home/httpd/aa/html ApJServDefaultPort 8007 ApJServMount default ajpv12://localhost:8007/root ApJServMount /servlet ajpv12://localhost:8007/servlet AddType text/jsp .jsp AddHandler jserv-servlet .jsp </VirtualHost> <VirtualHost 211.53.212.40> ServerName bb.webdox.co.kr DocumentRoot /home/httpd/bb/html ApJServDefaultPort 8008 ApJServMount default ajpv12://localhost:8008/root ApJServMount /servlet ajpv12://localhost:8008/servlet AddType text/jsp .jsp AddHandler jserv-servlet .jsp </VirtualHost> </IfModule>°¡»ó È£½ºÆ® ¼³Á¤ÀÌ httpd.conf°¡ ¾Æ´Ï¶ó ¿©±â¿¡ Æ÷ÇԵǾî¾ß ÇÑ´Ù. À§¿¡ ÀûÀº °ÍÀº ¿¹·Î µç °ÍÀ̹ǷΠ°¢ °¡»ó È£½ºÆ®¿¡ ÇÊ¿äÇÑ ³»¿ëµéÀ» httpd.conf¿¡¼Ã³·³ Àû¾îÁÖ¸é µÈ´Ù. ´Ü, °¢ °¡»ó È£½ºÆ® ¼³Á¤ÀÇ ¸¶Áö¸· ´Ù¼¸ ÁÙÀº JSP ÆÄÀÏ°ú ½áºí¸´À» ¼·Î ´Ù¸¥ TomcatÀ¸·Î º¸³»±â À§ÇÑ °ÍÀ̹ǷΠJSP¸¦ »ç¿ëÇÏ´Â °¡»ó È£½ºÆ®¿¡´Â ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù. À§¿¡¼ ¿¹·Î µç µÎ °æ¿ì¿¡¼ Æ÷Æ® ¹øÈ£°¡ ´Ù¸§¿¡ ÁÖ¸ñÇϱ⠹ٶõ´Ù. ÀÌÁ¦ TomcatÀ» 8007¹ø Æ÷Æ®¿Í 8008¹ø Æ÷Æ®¸¦ ¾²µµ·Ï ÇÏ¸é µÈ´Ù.
µÎ TomcatÀ» ½ÇÇà½ÃÅ°·Á¸é server.xmlÀ» ¼öÁ¤ÇØ¾ß ÇÑ´Ù. tomcat_aa/conf/server.xml°ú tomcat_bb/conf/server.xmlÀÇ Æ÷Æ® ¹øÈ£¸¦ À§ÀÇ tomcat.conf ¿¡¼ Á¤ÇØÁØ °ª°ú ÀÏÄ¡½ÃÄÑ¾ß ÇÑ´Ù. tomcat_aa/conf/server.xml À» »ìÆ캸¸é ´ÙÀ½°ú °°Àº ºÎºÐÀÌ ÀÖ´Ù.
<Connector className="org.apache.tomcat.service.SimpleTcpConnector"> <Parameter name="handler" value="org.apache.tomcat.service.http.HttpConnectionHandler"/> <Parameter name="port" value="8080"/> </Connector> <Connector className="org.apache.tomcat.service.SimpleTcpConnector"> <Parameter name="handler" value="org.apache.tomcat.service.connector.Ajp12ConnectionHandler"/> <Parameter name="port" value="8007"/> </Connector>¾ÕÀÇ °ÍÀº TomcatÀÌ ÀÚüÀûÀ¸·Î °®°í ÀÖ´Â À¥½á¹öÀÇ Æ÷Æ®¹øÈ£Àε¥, ¾ÆÆÄÄ¡¸¦ ¾²°í ÀÖÀ¸¹Ç·Î ±»ÀÌ ´Ù¸¥ À¥½á¹ö¸¦ ¶Ç ¶ç¿ï ÀÌÀ¯°¡ ¾ø´Ù. ±×·¯¹Ç·Î ¾ÕÀÇ ³× ÁÙÀº ¸ðµÎ »èÁ¦Çϱ⠹ٶõ´Ù. µÚÀÇ ³× ÁÙÀÌ ¾ÆÆÄÄ¡¿Í TomcatÀÌ Åë½ÅÇÏ´Â Æ÷Æ®Àε¥ ÀÌ °ªÀ» tomcat.conf¿¡¼ Á¤ÇØÁØ °ª°ú °°Àº 8007·Î Àû¾îÁÖ¸é µÈ´Ù. tomcat_bb/conf/server.xml¿¡´Â ´ÙÀ½°ú °°ÀÌ 8008¹øÀ¸·Î Àû¾îÁØ´Ù.
<Connector className="org.apache.tomcat.service.SimpleTcpConnector"> <Parameter name="handler" value="org.apache.tomcat.service.connector.Ajp12ConnectionHandler"/> <Parameter name="port" value="8008"/> </Connector>
´ÙÀ½À¸·Î ¼öÁ¤ÇÒ °ÍÀº JSP ÆÄÀÏ¿¡ ´ëÇÑ ¿äûÀÌ µé¾î¿ÔÀ» ¶§ À̸¦ ¾î¶² µð·ºÅ丮¿¡¼ ãÀ» °ÍÀΰ¡¸¦ ÁöÁ¤ÇØÁÖ´Â ºÎºÐÀÌ´Ù. Æ÷Æ®¹øÈ£¸¦ Àû¾îÁØ ¾Æ·¡¿¡ º¸¸é <Context> űװ¡ Àִµ¥, ÀÌ Å±װ¡ TomcatÀ¸·Î µé¾î¿À´Â ¿äû°ú ½ÇÁ¦ µð·ºÅ丮¸¦ ´ëÀÀ½ÃÄÑÁÖ´Â ±¸½ÇÀ» ÇÑ´Ù. ¼³Ä¡ ÈÄ ¼öÁ¤ÇÑ °ÍÀÌ ¾ø´Ù¸é example°ú test¸¦ Á¤ÀÇÇÏ°í ÀÖÀ»ÅÙµ¥, ÀÌ µÎ ÁÙÀ» »èÁ¦ÇÏ°í ´ÙÀ½°ú °°ÀÌ ÇϳªÀÇ <Context>¸¸À» ³²°Ü ³õÀ¸¸é µÈ´Ù.
<Context path="" docBase="webapps/ROOT" debug="0" reloadable="true"> </Context>tomcat_bb/conf/server.xmlµµ ¸¶Âù°¡ÁöÀÌ´Ù.
À§ÀÇ ¹æ¹ýÀº DocumentRoot ÀÌÇÏÀÇ ¾î´À °÷¿¡¼µµ JSP¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ¸»ÇÏÀÚ¸é Àüü°¡ ÇϳªÀÇ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ¸·Î µ¿ÀÛÇÏ´Â ¼ÀÀÌ´Ù. À̸¦ À§ÇØ, ¸¶Áö¸·À¸·Î webapps/ROOT°¡ ½ÇÁ¦ DocumentRoot¸¦ °¡¸®Å°µµ·Ï ÇØ¾ß ÇÑ´Ù. Áï, °¢ TomcatÀÇ TOMCAT_HOME ¾Æ·¡¿¡ ÀÖ´Â webapps/ROOT¸¦ »èÁ¦ÇÏ°í, ´ë½Å DocumentRoot¸¦ °¡¸®Å°´Â ½Éº¼¸¯ ¸µÅ©·Î ´ëüÇÑ´Ù. º» ¿¹¿¡¼´Â aa.webdox.co.krÀÇ DocumentRoot °ªÀÌ /home/httpd/aa/htmlÀ̹ǷÎ, ´ÙÀ½Ã³·³
ln -s /home/httpd/aa/html /usr/local/tomcats/tomcat_aa/webapps/ROOT½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µç´Ù. ÀÌ·¸°Ô ÇØ µÎ¸é Tomcat ½ÇÇà½Ã¿¡ DocumentRoot ÀÌÇϸ¦ °Ë»öÇÏ¿© CLASSPATH¸¦ Ãß°¡ÇÏ´Â µîÀÇ ÃʱâÈ ÀÛ¾÷À» ÇÏ°Ô µÈ´Ù. ¸¸ÀÏ JSPÆÄÀÏ µî¿¡¼ ºÒ·¯ ¾²°í ½ÍÀº class°¡ ÀÖ´Ù¸é .class ÆÄÀÏ·Î ¸¸µé¾î¼ DocumentRoot ¹Ø¿¡ WEB-INF/classes¶ó´Â µð·ºÅ丮¿¡ ³Ö¾î µÎ¸é µÈ´Ù. tomcat_bbÀÇ °æ¿ìµµ ¸¶Âù°¡Áö´Ù
ƯÁ¤ µð·ºÅ丮 ÀÌÇÏ¿¡¼¸¸ ¾²µµ·Ï ÇÏ°í ½Í´Ù¸é º¸´Ù ³ªÀº ÇØ°áÃ¥ÀÌ ÀÖ´Ù. À§ÀÇ ¿¹¿¡¼ path="" ºÎºÐ¿¡ ±× °ªÀ» ¸í½ÃÇÏ¸é µÈ´Ù. ¿¹¸¦ µé¾î http://aa.webdox.co.kr/java/ ÀÌÇÏ¿¡¸¸ JSP³ª servletÀ» ³Ö°í ½Í´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
<Context path="/java" docBase="webapps/java" debug="0" reloadable="true"> </Context>¹°·Ð, webapps/javaÀº ½ÇÁ¦ ÆÄÀϵéÀÌ Á¸ÀçÇÏ´Â /home/httpd/aa/html/javaÀ¸·ÎÀÇ ½Éº¼¸¯ ¸µÅ©ÀÌ´Ù. docBase´Â ´Ù¸¥ ¿øÇÏ´Â µð·ºÅ丮·Î ´ëüÇصµ ¹«¹æÇÏ´Ù. ±×·± ´ÙÀ½ /home/httpd/aa/html/java ¹Ø¿¡ ¸¶Âù°¡Áö·Î WEB-INF/classes µð·ºÅ丮¸¦ ¸¸µé°í °Å±â¿¡ ÇÊ¿äÇÑ .class ÆÄÀϵéÀ» ³ÖÀ¸¸é µÈ´Ù.
¸ðµç ¼³Á¤ÀÌ ³¡³µÀ¸¸é ¾ÆÆÄÄ¡¸¦ ´Ù½Ã ½ÇÇàÇÏ°í, °¢°¢ÀÇ °¡»ó È£½ºÆ®¸¶´Ù TomcatÀ» µû·ÎÀÌ ½ÇÇà½ÃŲ´Ù. ¿©±â¼´Â ´ÙÀ½Ã³·³ ÇÏ¸é µÈ´Ù.
# /usr/local/tomcats/tomcat_aa/bin/tomcat.sh start # /usr/local/tomcats/tomcat_bb/bin/tomcat.sh startÀÌ¹Ì ½ÇÇàÁßÀÎ TomcatÀÌ ÀÖ´Ù¸é ±×°É ¸ÕÀú Á¾·áÇÏ´Â °ÍÀ» ÀØÁö ¸»ÀÚ. ÀÌÁ¦ µÎ °¡»ó È£½ºÆ®·Î Á¢¼ÓÇؼ ½ÇÇà ¿©ºÎ¸¦ È®ÀÎÇÏ¸é µÈ´Ù.
Tomcat¿¡¼ ÇѱÛÀ» ¹Ù·Î »ç¿ëÇϱâ À§Çؼ´Â ¸ðµç JSP ÆäÀÌÁö¿Í ½áºí¸´¿¡¼ ¹®ÀÚ¼ÂÀ» EUC_KR·Î ÁöÁ¤ÇØ¾ß ÇÑ´Ù. ½áºí¸´¿¡¼´Â HttpServletResponse Ŭ·¡½ºÀÇ setContentType() ¸Þ½îµå¿¡ ÀÎÀÚ·Î "text/html; charset=EUC_KR"¸¦ ³Ñ°ÜÁÖ¸é µÇ°í JSP¿¡¼´Â ÆäÀÌÁö »ó´ÜÀÇ <%@ page> ű׾ȿ¡ ´ÙÀ½Ã³·³ ÇÏ¸é µÈ´Ù.
<%@ page contentType="text/html; charset=EUC_KR" %>
±×·±µ¥, TomcatÀº ÇÑ±Û Ã³¸®¿¡ ÀÖ¾î¼ ÇÑ °¡Áö ¹®Á¦Á¡ÀÌ ÀÖ´Ù. GETÀ̳ª POST ¸¦ ÅëÇØ À̵¿µÇ´Â °ªÀÌ Cp1252·Î º¯È¯µÈ´Ù´Â Á¡ÀÌ´Ù. µû¶ó¼, request.getParameter() ¸Þ½îµå¸¦ »ç¿ëÇÒ ¶§ ²À EUC_KR·Î ´Ù½Ã º¯È¯ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ´ÙÀ½Ã³·³ ÄÚµùÇÏ¸é µÈ´Ù.
<%@ page contentType="text/html; charset=EUC_KR" %> ... <% String userId = new String(request.getParameter("id").getBytes("Cp1252"), "EUC_KR"); ...»ç¿ëÀÇ ÆíÀǸ¦ À§ÇØ ÄÚµå º¯È¯À» ÇØ Áִ Ŭ·¡½º¸¦ Çϳª ¸¸µé¸é ÁÁ°Ú´Ù.
request.getParameter() ¸Þ½îµå¸¦ »ç¿ëÇÏ¿© GET ȤÀº POST·Î ³Ñ¾î¿À´Â °ªÀ» EUC_KR·Î º¯È¯ÇÏ´Â °ÍÀº Àû´çÈ÷ Ŭ·¡½º¸¸ ¸¸µé¾î ³õÀ¸¸é ¹ø°Å·ÓÁö ¾ÊÀ¸³ª, ¹®Á¦´Â <jsp:setProperty>¸¦ »ç¿ëÇÏ´Â µ¥ ÀÖ´Ù. Beans¸¦ »ç¿ëÇϸé <jsp:setProperty>¸¦ ÅëÇØ formÀÇ °¢ ÇʵåÀÇ À̸§°ú beansÀÇ setXXX() ¸Þ½îµåÀÇ À̸§À» ÂüÁ¶ÇÏ¿© formÀÇ ÇÊµå °ª°ú set ÀÌÈÄ°¡ °°Àº À̸§ÀÇ setXXX() ¸Þ½îµå¸¦ »ç¿ëÇÏ¿© ÀÚµ¿ÀûÀ¸·Î beansÀÇ ÇÊµå °ªÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. (BeansÀÇ °³³ä°ú <jsp:setProperty> ±¸¹®¿¡ ´ëÇÑ ¼³¸íÀº JSP¿¡¼ Beans »ç¿ëÇϱ⸦ Âü°íÇÏ¸é µÈ´Ù) ±×·±µ¥, ÀÌ·¸°Ô ÀÚµ¿ÀûÀ¸·Î beansÀÇ Çʵ尡 ¼³Á¤µÉ ¶§ ¿ª½Ã Cp1252·Î ÀÎÄÚµùµÇ±â ¶§¹®¿¡, beansÀÇ ÇÊµå °ªÀ» <jsp:setProperty>·Î ÀÚµ¿ ¼³Á¤ÇÑ ÈÄ¿¡ ²À ´Ù½Ã ¸ðµç Çʵ带 EUC_KR·Î º¯È¯ÇØ¾ß ÇÑ´Ù. ÀÌÇظ¦ µ½±â À§ÇØ ¿¹¸¦ µé¾î º¸°Ú´Ù.
JSP ¹®¼ <jsp:useBean id="user" class="User" scope="page"/> <jsp:setProperty name="user" property="*"/> <% user.toKorean(); %> User Bean (User.java) import java.io.*; import CharacterSet; public class User { private String id; private String password; public void setId(String str) { id = str; } public void setPassword(String str) { password = str; } public String getId() { return id; } public String getPassword() { return password; } public void toKorean() { id = CharacterSet.toKorean(id); } } CharacterSet Ŭ·¡½º (CharacterSet.java) import java.lang.*; import java.io.*; public class CharacterSet { public static String toKorean(String str) { try { return new String(str.getBytes("Cp1252"), "EUC_KR"); } catch (UnsupportedEncodingException e) { return null; } } }CharacterSet Ŭ·¡½º´Â ÄÚµå º¯È¯À» ½±µµ·Ï ¸¸µç °ÍÀÌ°í, User.java¿¡¼ ÀÌ Å¬·¡½º¸¦ »ç¿ëÇÏ°í ÀÖ´Ù. User bean¿¡ form¿¡¼ ÀԷ¹ÞÀº ¾ÆÀ̵ð¿Í ºñ¹Ð¹øÈ£¸¦ ÀÚµ¿À¸·Î ¼³Á¤ÇÏ°í ³ª¼ User beanÀÇ ¸Þ½îµå´Â toKorean()À» »ç¿ëÇÏ¿© EUC_KR·Î º¯È¯ÇÏ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù.
ÇÑ±Û ÄÚµå ¹®Á¦´Â form¿¡¼ Àü´Þ¹ÞÀº °ªÀ» beans¿¡ ÀÚµ¿ ¼³Á¤ÇÒ ¶§¸¸ »ý±â´Â °ÍÀ¸·Î¼, Á÷Á¢ beans¿¡ °ªÀ» ¼³Á¤ÇÒ ¶§´Â ¹®Á¦°¡ ¾ø´Ù.