|
Enterprise Java Technologies Tech Tips¿¡ ¿À½Å ¿©·¯ºÐÀ» ȯ¿µÇÕ´Ï´Ù. Java
2 Platform, Enterprise Edition (J2EE)¿¡ ±â¹ÝÇÑ enterprise Java
technologies ¿Í APIsÀÇ »ç¿ë¿¡ °üÇÑ ÃֽŠÁ¤º¸¸¦ ¾ò¾î °¡½Ã±â ¹Ù¶ø´Ï´Ù. ÀÌ ±Û¿¡¼´Â Java 2
SDK, Standard Edition, v 1.4¿Í Java 2 SDK, Enterprise Edition,
v 1.3.1 (Reference Implementation)¸¦ »ç¿ëÇÕ´Ï´Ù.
À̹ø È£¿¡¼´Â,
Ä¿½ºÅÒ ÅÂ±× ÆÄÀÏ
JSP ÆäÀÌÁö¿¡¼ ¿£ÅÍÇÁ¶óÀÌÁî ºó »ç¿ëÇϱâ
¸¦ ´Ù·ç°Ô µË´Ï´Ù.
ÀúÀÚ Mark Johnson
¿¹Á¦ÀÇ »ùÇà ¾ÆÄ«À̺긦 ´Ù¿î·Îµå
¹ÞÀ¸¼¼¿ä. ÄÁÅØ½ºÆ® ·çÆ®´Â ttfeb2004ÀÌ°í »ùÇÃÄÚµåÀÇ »ç¿ë¹ýÀº index.html welcome file
¿¡¼ º¸½Ç ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÄÚµåÀÇ »ç¿ë¿¡ °üÇÑ ±ÇÇÑÀ̳ª Á¤º¸´Â license
terms¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù.
Ä¿½ºÅÒ ÅÂ±× ÆÄÀÏ
JavaServer Pages (JSP pages)ÀÇ Ä¿½ºÅÒ Å±״ HTML ÅÂ±×¿Í À¯»çÇÏ´Ù. ÇÏÁö¸¸ Ä¿½ºÅÒ Å±״ ÅÂ±×¿Í °ü·ÃµÈ Çڵ鷯 Ŭ·¡½º¿¡ ÀÇÇØ ·±Å¸Àӽÿ¡ ÅØ½ºÆ® Çü½ÄÀÇ Ãâ·Â°ªÀ¸·Î ´ëüµÈ´Ù. Áö³ Å×Å©ÆÁÀÎ Using
Custom Tags¿¡¼ ÀÌ¿Í °°Àº Ŭ·¡½ºÀÇ »ý¼º¹æ¹ý¿¡ ´ëÇØ À̾߱âÇß´Ù. À̹ø´ÞÀÇ Ã¹¹øÂ° ÆÁÀº Ä¿½ºÅÒ Å±׸¦ ±¸ÇöÇÏ´Â ´õ »õ·Ó°í ½¬¿î ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
JSP 2.0ÀÌÀü¿¡´Â Ä¿½ºÅÒ Å±׸¦ »ý¼ºÇÏ·Á¸é ÀÚ¹Ù ÅÂ±× Çڵ鷯 Ŭ·¡½º·Î ±¸ÇöÇÏ´Â °ÍÀÌ À¯ÀÏÇÑ ¹æ¹ýÀ̾ú´Ù. ¶ÇÇÑ Çڵ鷯 Ŭ·¡½º °³¹ßÀڴ ű׸¦ À¥ ÄÁÅ×À̳ʿ¡°Ô ¼³¸íÇÏ´Â ¿ªÇÒÀ» ÇÏ´Â TLDÆÄÀÏÀ» »ý¼ºÇؾ߸¸ Çß´Ù. Ä¿½ºÅÒ Å±×ÀÇ ÈûÀº °·ÂÇÏÁö¸¸ À̸¦ ÀÌ¿ëÇÏ·Á¸é ÇÁ·Î±×·¡¹Ö ½ºÅ³ÀÌ ¿ä±¸µÇ°í JSP ÆäÀÌÁö°¡ ¾î¶»°Ô HTML·Î º¯È¯ÇÏ´ÂÁö¸¦ È®½ÇÇÏ°Ô ¾Ë°í ÀÖ¾î¾ß ÇÑ´Ù.
JSP 2.0 ÅÂ±× ÆÄÀÏÀÇ »õ·Î¿î ±â´ÉÀº ºñ°³¹ßÀÚµµ Àç»ç¿ëÀÌ °¡´ÉÇÑ Ä¿½ºÅÒ Å±׸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ°Ô ÇÒ »Ó¸¸ ¾Æ´Ï¶ó ÇÁ·Î±×·¡¸Óµµ ´õ ½±°Ô ÀÛ¾÷ÇÒ ¼ö ÀÖµµ·Ï µµ¿ÍÁØ´Ù. JavaServer Pages Standard Tag Library (JSTL) °ú expression language (EL)À¸·Î ÀÌ·ç¾îÁø JSP 2.0 ±¸¹®À» ÀÌ¿ëÇϸé, ÀÚ¹Ù Äڵ带 ÀÛ¼ºÇÒ ÇÊ¿ä¾øÀÌ Ä¿½ºÅÒ Å±׸¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù.
ÅÂ±× ÆÄÀÏÀº JSP ÆäÀÌÁö¿¡¼ Àç»ç¿ëÀÌ °¡´ÉÇÑ ÄÄÆ÷³ÍÆ®ÀÌ´Ù. À̸¦ »ç¿ëÇÏ¸é ´ÙÀ½°ú °°Àº ÀÌÁ¡ÀÌ ÀÖ´Ù.
- ScriptletsÀ» ¼û±â°Å³ª Á¦°ÅÇϴµ¥ »ç¿ëµÉ ¼ö ÀÖ´Ù.
- ÀÚ¸£±â¿Í ºÙÀ̱Ⱑ ¾Æ´Ñ, ·¹ÆÛ·±½º·Î¸¦ ÀÌ¿ëÇÏ¿© Äڵ带 Àç»ç¿ë°¡´ÉÇϵµ·Ï ¸¸µç´Ù.
- JSP ÆäÀÌÁö¸¦ ÀÛ¼ºÇϱ⠽±°í, ¸Å¿ì ³í¸®ÀûÀ̸ç, À¯ÁöÇϱ⠽±µµ·Ï ¸¸µç´Ù.
- ºñ°³¹ßÀÚ¿¡ ÀÇÇØ ÀÛ¼ºµÉ ¼ö ÀÖ´Ù.
- ÅÂ±× ÆÄÀÏÀÇ ±¸¼ºÀº ÀÚ¹Ù°¡ ¾Æ´Ñ HTML¿¡ ´õ °¡±õ´Ù. µû¶ó¼ JSP ÆäÀÌÁö´Â ´ÜÀÏ ¾ð¾î·Î ÀÛ¼ºµÈ °Íó·³ º¸ÀδÙ.
- ÅÂ±× ÆÄÀÏÀº ÇÏÀÌ ·¹º§ ÄÄÆ÷³ÍÆ®¸¦ Çü¼ºÇϱ⠶§¹®¿¡ »ý»ê¼ºÀ» ³ôÀÌ°í °³¹ß¼Óµµ¸¦ ºü¸£°Ô ÇÑ´Ù.
- Ä¿½ºÅÒ Å±׿¡ ÀÇÇØ »ç¿ëµÇ´Â TLDÆÄÀÏÀº ÈçÈ÷ ÀÚµ¿ÀûÀ¸·Î »ý¼ºµÈ´Ù.
- ÇöÁ¸ÇÏ´Â ÆäÀÌÁö¸¦ ¸®ÆÑÅ丵Çϱâ À§ÇØ »ç¿ëµÉ ¼ö ÀÖ´Ù. ÄÚµåÀÇ °øÅë ºÎºÐÀº ¾ÖÇø®ÄÉÀÌ¼Ç ºä°£¿¡ °øÀ¯µÇ´Â ÅÂ±× ÆÄÀÏ·Î ÅëÇÕµÉ ¼ö ÀÖ´Ù.
ÅÂ±× ÆÄÀÏÀÌ Ä¿½ºÅÒ ÅÂ±× Çڵ鷯 Ŭ·¡½º¸¦ ¿Ïº®ÇÏ°Ô ´ëüÇÏÁö´Â ¸øÇÑ´Ù. ÅÂ±× ÆÄÀÏÀº Àç»ç¿ëÀÌ °¡´ÉÇÑ ÄÁÅÙÃ÷¸¦ °ü·ÃµÈ ·¹À̾ƿô°ú ÇÁ¸®Á¨Å×À̼ÇÀ¸·Î ĸ½¶ÈÇÒ ¶§ ÀûÇÕÇÏ´Ù.
¹Ý¸é Ä¿½ºÅÒ Å±״ JSPÆäÀÌÁö¿¡¼ ¾ÖÇø®ÄÉÀÌ¼Ç ·ÎÁ÷(logic)À» Àç»ç¿ëÇÒ ¶§ ´õ È¿°úÀûÀÌ´Ù. °¡·É, ÆäÀÌÁö Çì´õ¿Í DzÅÍ(²¿¸®¸»)´Â ÅÂ±× ÆÄÀÏÀ» À§ÇÑ ÃÖÀûÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀÌ´Ù. ÀÌ¿Í ºñ±³Çؼ JSTLÀÇ Ä¿½ºÅÒ Å±״ ÀÚ¹Ù ¾ð¾î Çڵ鷯 Ŭ·¡½º·Î¼ ±¸ÇöµÈ´Ù.
ÅÂ±× ÆÄÀÏÀÇ Æ¯Â¡
ÅÂ±× ÆÄÀÏÀº »ç½Ç ÅÂ±× Çڵ鷯 Ŭ·¡½º·Î ¹ø¿ª/ÄÄÆÄÀϵȴÙ. ÅÂ±× Çڵ鷯¿Í ÅÂ±× Çڵ鷯 Ŭ·¡½ºÀÇ ´Ü ÇѰ¡Áö ´Ù¸¥ Á¡Àº ÅÂ±× Çڵ鷯´Â JSP ±¸¹®À¸·Î ¾²¿©Áö°í ÅÂ±× Çڵ鷯 Ŭ·¡½º´Â ÀÚ¹Ù ¾ð¾î·Î ÀÛ¼ºµÈ´Ù´Â Á¡ÀÌ´Ù.
JSP 2.0-compliant ÄÁÅ×À̳ʴ À¥ ¾ÆÄ«ÀÌºê µð·ºÅ丮ÀÎ WEB-INF/tags³»¿¡¼ ÅÂ±× ÆÄÀÏÀ» ã°Ô µÈ´Ù. ÅÂ±× ÆÄÀÏÀº WEB-INF/libÀÇ JAR ÆÄÀϾȿ¡ ¹ÀÏ ¼öµµ ÀÖ´Ù. JSP ÆäÀÌÁö¸¦ ±¸ÇöÇÒ ¶§ À¥ ÄÁÅ×À̳ʰ¡ ÅÂ±× ÆÄÀϰú °ü·ÃµÈ ű׸¦ ¸¶ÁÖÄ¡°Ô µÇ¸é, ÅÂ±× ÆÄÀÏÀÇ JSPÄÁÅÙÃ÷ Ãâ·Â°ªÀº °è»êµÇ¾î¼ ÀÀ´ä ½ºÆ®¸²¿¡ Æ÷ÇÔµÇ°Ô µÈ´Ù. ÅÂ±× ÆÄÀÏÀº ¾ÖÆ®¸®ºäÆ®¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ°í JSP 2.0 expression language (EL)¿¡ ´ëÇÑ Á¢±ÙÀÌ °¡´ÉÇÏ´Ù. ¶ÇÇÑ ÅÂ±× ÆÄÀÏÀº ½ÇÇàÀÌ ¿Ï·áµÈ ÈÄ¿¡µµ Á¸ÀçÇÏ´Â EL º¯¼öµéÀ» »ý¼ºÇÒ ¼ö ÀÖ´Ù.
ÅÂ±× ÆÄÀÏÀº ¾ÖÆ®¸®ºäÆ® Áö½Ã¾î¸¦ ÀÌ¿ëÇØ¼ ¾ÖÆ®¸®ºäÆ®¸¦ ¼±¾ðÇÏ°Ô µÈ´Ù. ´ÙÀ½Àº ÀÌ ÆÁÀÇ »ùÇÃÄÚµå·ÎºÎÅÍ ¹ßÃéÇÑ ¿¹Á¦ÀÌ´Ù. ÅÂ±× ÆÄÀÏÀº ´ÜÀÏ ¾ÖÆ®¸®ºäÆ® Áö½Ã¾î·Î ½ÃÀÛÇÑ´Ù. <%@ attribute name="format" required="false" %>
³¯Â¥¸¦ »ý¼ºÇϴ ű״ À§ÀÇ ¶óÀÎÀ» ÀÌ¿ëÇØ¼ ÄÁÅ×À̳ʿ¡°Ô °¡´ÉÇÑ "format" ¾ÖÆ®¸®ºäÆ®¸¦ ãÀ¸¶ó°í ¸í·ÉÇÑ´Ù. Çʼö ¾ÖÆ®¸®ºäÆ®ÀÏ °æ¿ì¿¡´Â Áö½Ã¾îÀÇ "required" ¾ÖÆ®¸®ºäÆ®°¡ "true"·Î ¼³Á¤µÈ´Ù. ÀÌ Áö½Ã¾îµéÀº Àü°³½Ã¿¡ À¥ ÄÁÅ×À̳ʰ¡ °íÀ¯ÀÇ TLD ÆÄÀÏÀ» »ý¼ºÇϵµ·Ï ÇØÁØ´Ù.
ű״ ¾ÖÆ®¸®ºäÆ®¸¦ ÅëÇØ¼ ÀԷ°ªÀ» ¹Þ´Â´Ù. ÅÂ±× ÆÄÀÏ¿¡ ÀÇÇØ »ý¼ºµÇ´Â Ãâ·Â ÅØ½ºÆ®À̿ܿ¡µµ ű״ ELº¯¼ö¸¦ »ý¼ºÇÔÀ¸·Î½á µ¥ÀÌÅ͸¦ "output" ÇÒ ¼ö ÀÖ´Ù. ÅÂ±× ÆÄÀÏÀº ´ÙÀ½°ú °°ÀÌ °ªÀ» ÅÂ±× ÆÄÀÏÀÌ È£ÃâµÇ¾ú´ø ÆäÀÌÁö¿¡ °ªÀ» ¸®ÅÏÇÒ ¼öµµ ÀÖ´Ù. <%@ variable name-given="filesincluded" scope="AT_END" %>
"name-given"Àº űװ¡ ¼öÇàµÈ ÈÄ, ÆäÀÌÁö³»¿¡ ¼³Á¤µÇ´Â º¯¼öÀÇ À̸§À» Á¦°øÇÑ´Ù. "AT_END"´Â ÅÂ±× ÆÄÀÏÀÌ ¿Ï¼ºµÇ¸é º¯¼ö°¡ ¼³Á¤µÈ´Ù´Â °ÍÀ» ¸»ÇÑ´Ù.
ÅÂ±× ÆÄÀÏ ¿¹Á¦
À̹ø »ùÇà ÄÚµå´Â Áö³ 2002/9¿ùÀÇ Å×Å©ÆÁ "Using Custom Tags"¿¡¼ ÀÛ¼ºÇß´ø Ä¿½ºÅÒ Å±׸¦ À籸ÇöÇÏ´Â ÅÂ±× ÆÄÀÏÀ» Æ÷ÇÔÇϰí ÀÖ´Ù. ¿À¸®Áö³Î ű״ ´ÙÀ½ ¼¼ °¡Áö Áß ÇѰ¡Áö ¹æ¹ýÀ¸·Î ¼¹ö¿¡ ³¯Â¥ÀÇ Æ÷¸ËÀ» ÁöÁ¤ÇÑ´Ù.
- ¸¸¾à Æ÷¸ËÀÌ ¼³Á¤µÇÁö ¾Ê¾Ò°Å³ª ºñ¾îÀÖ´Ù¸é, ű״ µðÆúÆ® Æ÷¸ËÀ¸·Î ³¯Â¥¸¦ ÇÁ¸°Æ®ÇÑ´Ù.
- Æ÷¸Ë ÆÄ¶ó¹ÌÅͰ¡ $»çÀÎÀ¸·Î ½ÃÀ۵Ǹé, ű״ ½ºÆ®¸µÀÇ ³ª¸ÓÁö ºÎºÐÀ» ȯ°æ ¿£Æ®¸®ÀÇ À̸§À¸·Î »ç¿ëÇÑ´Ù. ű״ Áö¸íµÈ ȯ°æ ¿£Æ®¸®¸¦ ã¾Æ¼ ±×°ÍÀÇ °ªÀ» Æ÷¸ËÀ¸·Î »ç¿ëÇÏ°Ô µÈ´Ù.
java.text.SimpleDateFormat°ú ȣȯµÇ´Â "format" ÆÄ¶ó¹ÌÅͰ¡ Æ÷¸Ë ½ºÆ®¸µÀ» Æ÷ÇÔÇϰí ÀÖ´Ù¸é, ½ºÆ®¸µÀº ³¯Â¥ÀÇ Æ÷¸ËÀ» ÁöÁ¤Çϴµ¥ ¾²ÀÌ°Ô µÈ´Ù.
ÅÂ±× ÆÄÀÏ¿¡ ÀÇÇØ ÁöÁ¤µÈ ű״ ¾à°£ ´Ù¸£°Ô ÀÛµ¿ÇÑ´Ù. Æ÷¸Ë ÆÄ¶ó¹ÌÅͰ¡ $À¸·Î ½ÃÀÛÇϸé, ű״ ȯ°æ ¿£Æ®¸® ´ë½Å ¼ºí¸´ ÄÁÅØ½ºÆ® ÃʱâÈ ÆÄ¶ó¹ÌÅ͸¦ ã´Â´Ù. (JSTL 1.0ÀÇ expression language´Â ȯ°æ ¿£Æ®¸®¸¦ ¾×¼¼½ºÇÒ ¼ö ÀÖ´Â ºôÆ® ÀÎ ¼Æ÷Æ®¸¦ Æ÷ÇÔÇÏÁö ¾Ê¾Ò´Ù.)
»ùÇà ÅÂ±× ÆÄÀÏÀÎ date.tag´Â ÆÄÀÏÀÌ ¿ä±¸ÇÏ´Â ¾ÖÆ®¸®ºäÆ®¸¦ Á¤ÀÇÇÏ´Â ¸î¸î Áö½Ã¾î·Î ½ÃÀÛÇÑ´Ù. ¶ÇÇÑ ÀÌ Å±װ¡ »ç¿ëÇÏ´Â ´Ù¸¥ ÅÂ±× ¶óÀ̺귯¸®¸¦ À§ÇÑ namespaces¸¦ ½Äº°Çس»±âµµ ÇÑ´Ù. <%@ attribute name="format" required="false" %>
<%@ taglib uri=
"http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri=
"http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri=
"http://java.sun.com/jsp/jstl/functions"
prefix="fn" %>
³¯Â¥ ÅÂ±× ÆÄÀÏÀÇ ´ÙÀ½ ºí·ÏÀº Æ÷¸Ë ½ºÆ®¸µÀ» °áÁ¤Çϱâ À§ÇØ <c:choose>ű׸¦ »ç¿ëÇÑ´Ù. <c:choose>´Â JSPÆäÀÌÁö¿¡¼ if/then/else±â´ÉÀ» ¼±ÅÃÇϱâ À§ÇÑ Å±×ÀÌ´Ù. óÀ½ "when"±¸¹®Àº Æ÷¸ËÀÌ nullÀ̰ųª ºñ¾îÀÖÀ» ¶§ ELº¯¼ö "format"À» µðÆúÆ® °ªÀ¸·Î ¼³Á¤Çϱâ À§ÇÑ °ÍÀÌ´Ù.
<c:choose>
<%-- If format is blank, set default --%>
<c:when test="${format == null or format == ''}">
<c:set var="format"
value="EEEE, d MMMM yyyy 'at' kk:mm:ss z"/>
</c:when>
...
"format"ÀÌ ºñ¾îÀÖ´Â »óŰ¡ ¾Æ´Ï¶ó¸é, ±×°ÍÀº "$"»çÀÎÀ¸·Î ½ÃÀÛÇϰųª ¶Ç´Â "$"À¸·Î ½ÃÀÛÇÏÁö ¾Ê´Â´Ù. ù¹øÂ° °æ¿ì¿¡¼, <choose> ű×ÀÇ <otherwise>ÀýÀº ù¹øÂ° "$"À» ¾ø¾Ö¹ö¸®°í ÁÖ¾îÁø À̸§À» ÀÌ¿ëÇØ¼ "format" º¯¼öÀÇ °ªÀ» ÄÁÅØ½ºÆ® ÆÄ¶ó¹ÌÅÍÀÇ ÄÁÅÙÃ÷·Î ´ëüÇÏ°Ô µÈ´Ù. <c:otherwise>
<%-- Else if format starts with "$",
look up in context param,
and set "format" to its value. --%>
<c:if test="${fn:substring(format,0,1) == '$'}">
<c:set var="format_name"
value="${fn:substringAfter(format,'$')}"/>
<c:set var="format"
value="${initParam[format_name]}"/>
</c:if>
<%-- Otherwise leave it as it is --%>
</c:otherwise>
</c:choose>
ÄÚ¸àÆ®¿¡ ÀûÇôÀÖµíÀÌ, "format"ÀÌ "$"·Î ½ÃÀÛÇÏÁö ¾ÊÀ¸¸é, ±×°ÍÀÇ °ªÀº º¯ÇÏÁö ¾Ê´Â´Ù.
ÆäÀÌÁöÀÇ ÀÌ ÁöÁ¡¿¡¼, EL "format"º¯¼öÀÇ °ªÀº ³¯Â¥ÀÇ Æ÷¸ËÀ» ÁöÁ¤Çϱâ À§ÇØ »ç¿ëµÉ ½ºÆ®¸µÀ¸·Î ¼³Á¤µÈ´Ù. useBean¶óÀÎÀº ÇöÀç ½Ã°£À» ³ªÅ¸³»´Â Date°´Ã¼¸¦ »ý¼ºÇϰí fmt:formatDate ¸Þ¼Òµå´Â ÀÌ ³¯Â¥¸¦ ÁÖ¾îÁø "format"¿¡ ¼³Á¤ÇÏ°Ô µÈ´Ù. <%-- Now actually create and format the date --%>
<jsp:useBean id="now" class="java.util.Date"/>
<fmt:formatDate value="${now}" pattern="${format}"/>
À̰ÍÀ¸·Î ÅÂ±× ÆÄÀÏÀÌ ¿Ï¼ºµÇ¾ú´Ù.
ÅÂ±× ÆÄÀÏÀ» ÀÌ¿ëÇÏ´Â °ÍÀº ´õ¿í °£´ÜÇÏ´Ù. »ùÇà ÆäÀÌÁö DatePage.jsp ÀÇ ÀºÎºÐ¿¡ ÀÖ´Â Áö½Ã¾î´Â /WEB-INF/tags µð·ºÅ丮¿¡ ÀÖ´Â ¸ðµç űװ¡ Á¢µÎ»ç "mytags"¸¦ ÀÌ¿ëÇØ¼ ¾×¼¼½º °¡´ÉÇÏ´Ù´Â °ÍÀ» ¸»ÇÑ´Ù. Áö½Ã¾î´Â ´ÙÀ½°ú °°´Ù. <%@ taglib tagdir="/WEB-INF/tags" prefix="mytags" %>
ÀÚ, ÀÌÁ¦ JSP ÅÂ±× ÆÄÀÏÀ» ´Ù¸¥ Ä¿½ºÅÒ Å±×ó·³ °£´ÜÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù. »ùÇà ÆäÀÌÁö DatePage.jsp¿¡¼ ¹ßÃéÇÑ ÄÚµåÀÌ´Ù. The time and date at the server in the default format
are <b><mytags:date/></b>.<br>
The time zone at the server is
<b><mytags:date format="zzzz"/></b>.<br>
The server date is
<b><mytags:date format="M/d/yyyy"/></b>.<br>
The server time is
<b><mytags:date format="hh:mm:ss a"/></b>.<br>
°¢°¢ÀÇ ´Â ÅÂ±× ÆÄÀÏÀ» È£ÃâÇÏ´Â °á°ú¸¦ ³º°í, ű״ ¼¹ö¿¡ ÇØ´ç ½Ã°£°ú ³¯Â¥¸¦ Ãâ·ÂÇÏ°Ô µÈ´Ù.
ÀÌ ¿¹Á¦´Â JSPÅÂ±× ÆÄÀÏÀ» °£´ÜÈ÷ ¼Ò°³ÇÏ´Â °Í¿¡ ±×Ä£´Ù. »ç½Ç JSPÅÂ±× ÆÄÀÏÀº ¿©±â¼ ¾ð±ÞÇÑ °Í ÀÌ»óÀÇ ¸¹Àº ¿É¼ÇÀ» °®°í ÀÖ´Ù. JSPÅÂ±× ÆÄÀÏ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â J2EE 1.4 Æ©Å丮¾óÀÇ "Custom
Tags in JSP Pages"ÀåÀ» Âü°íÇϱ⠹ٶõ´Ù.
JSP ÆäÀÌÁö¿¡¼ ¿£ÅÍÇÁ¶óÀÌÁî ºó »ç¿ëÇϱâ
2004/1/26ÀÏ Å×Å©ÆÁÀº JSP
2.0 Expression Language (EL)¿¡ ´ëÇØ¼ ´Ù·ð´Ù. ÀÌ ÆÁÀÇ ¿¹Á¦ Áß Çϳª´Â JavaBeanÀÌ ELº¯¼ö¸¦ ÀÌ¿ëÇØ¼ À̸§À¸·Î ¾×¼¼½º °¡´ÉÇÏ°Ô µÇ´Â ¹æ¹ýÀ» ¼³¸íÇß´Ù. JavaBean ¼Ó¼ºÀº ¶ÇÇÑ ´Ü¼ø EL Ç¥ÇöÀ¸·Îµµ ¾×¼¼½º°¡ °¡´ÉÇѵ¥, ÀÌ ±â´ÉÀº Enterprise JavaBeans components (enterprise beans)À» JSP ÆäÀÌÁö ³»¿¡¼ ¸Å¿ì ½±°Ô »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. ÀûÀýÇÑ ½ºÄÚÇÁ¿¡¼ Áö¸íµÈ ¾ÖÆ®¸®ºäÆ®³»ÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç ºä¿¡ ÀÇÇØ ¿ä±¸µÇ´Â ¿£ÅÍÇÁ¶óÀÌÁî ºóÁ ´Ü¼øÈ÷ °¡Á®´Ù ³õÀÚ. ±×¸®°í JSP ÆäÀÌÁö°¡ EL expressionsÀ¸·Î ¾²ÀÎ À̸§¿¡ ÀÇÇØ ¾ÖÆ®¸®ºäÆ®¸¦ ¾×¼¼½ºÇÒ ¼ö ÀÖµµ·Ï ÇÏÀÚ. ¿¹Á¦¸¦ ÅëÇØ ÀÌ ±â¹ýÀ» ÀÌÇØÇØ º¸µµ·Ï ÇϰڴÙ.
»ùÇà ÄÚµå
ÀÌ ±ÛÀÇ »ùÇà ÄÚµå´Â Å©·¹µ÷ Ä«µå ÀÎÁõ ¾ÖÇø®ÄÉÀ̼ÇÀÌ´Ù. Å©·¹µ÷ Ä«µå ȸ»ç´Â Å©·¹µ÷ Ä«µå ³Ñ¹öÀÇ À¯È¿ÇÔÀ» üũÇϱâ À§ÇØ ¾²ÀÌ´Â ¿©·¯ °¡Áö ±ÔÄ¢À» °®°í ÀÖ´Ù. Å©·¹µ÷ Ä«µå ³Ñ¹öÀÇ »óÅ´ À¯È¿Çϰųª ÀܰíºÎÁ·À̰ųª, ¸¸·á ȤÀº Ãë¼ÒµÈ »óÅÂÀÏ ¼ö ÀÖ´Ù. À¯È¿ÇÔÀ» üũÇÏ´Â ¸ñÀûÀº ÀÎÁõÀÌ µÇ±â Àü¿¡ µ¥ÀÌÅÍ ¿£Æ®¸® ¿¡·¯¸¦ Àâ´Â °ÍÀÌ´Ù.
´ÙÀ½°ú °°Àº °æ¿ì¿¡ Å©·¹µ÷ Ä«µå ³Ñ¹ö´Â À¯È¿ÇÏ´Ù.
- Å©·¹µ÷ Ä«µåÀÇ Å¸ÀÔ¿¡ ¸Â´Â Á¢µÎ»ç¸¦ °®´Â´Ù.
- Å©·¹µ÷ Ä«µå ³Ñ¹ö°¡ ¿Ã¹Ù¸¥ µðÁöÅÐ ³Ñ¹ö¸¦ °®´Â´Ù.
- Å©·¹µ÷ Ä«µå ³Ñ¹ö°¡ checksum Å×½ºÆ®¸¦ ÆÐ½ºÇß´Ù.
- Ä«µå°¡ ¸¸·áµÈ »óŰ¡ ¾Æ´Ï´Ù.
»ùÇà ¾ÖÇø®ÄÉÀ̼ÇÀº 3°³ÀÇ ÄÄÆ÷³ÍÆ®¸¦ »ç¿ëÇÑ´Ù.
- Å©·¹µ÷ Ä«µå µ¥ÀÌÅ͸¦ ³ªÅ¸³»°í È®ÀÎÇÏ´Â stateful ¼¼¼Ç ºóÀÎ
CreditCardLocal
- ¼¼¼Ç ½ºÄÚÇÁ³»¿¡ ÀÖ´Â ºóÀÇ °´Ã¼¸¦ »ý¼ºÇÏ´Â ¼ºí¸´ÀÎ
Feb2004Servlet. µû¶ó¼ °³°³ÀÇ À¯Àú´Â ÇϳªÀÇ ÀνºÅϽº¸¦ ¾ò°Ô µÈ´Ù.
- µ¥ÀÌÅ͸¦ ¼öÁýÇϰí ÀÎÁõ °á°ú¸¦ ÇÁ¸°Æ®ÇÏ´Â JSPÆäÀÌÁöÀÎ
ValidateCard.jsp
ÄÚµåÀÇ ÀÛµ¿ ¿ø¸®´Â ´ÙÀ½°ú °°´Ù.
index.jsp ÀÔ·ÂÆäÀÌÁöÀÇ ¸µÅ©´Â ¼ºí¸´À» °¡¸£Å°°í ¼ºí¸´Àº ¼¼¼Ç ºó ÇÚµéÀ» »ý¼ºÇÏ¿© ±×°ÍÀ» ¼¼¼Ç ÄÁÅØ½ºÆ®¿¡ µÐ´Ù. ±×¸®°í³ª¼ ¼ºí¸´Àº Ä«µå ³Ñ¹ö ÀԷ°ª°ú ÀÎÁõÀ» ´Ù·ç´Â URL jsp/ValidateCard.jsp·Î ¿äûÀ» º¸³½´Ù. ÀÌ ÀÔ·ÂÆäÀÌÁö´Â »ç¿ëÀÚ°¡ µ¥ÀÌÅÍ ÀÔ·ÂÀ» ¸¶Ä£ ÀÌÈÄ¿¡ ÀçÈ£ÃâµÈ´Ù. »ç½Ç ½ÇÁ¦ ¾ÖÇø®ÄÉÀ̼ǿ¡¼´Â ±¸¸Å °úÁ¤¿¡¼ Ä«µå°¡ ¿Ã¹Ù¸£°Ô À¯È¿ÀÎÁõÀÌ µÇ¾ú´Ù¸é ÀÚµ¿ÀûÀ¸·Î ´ÙÀ½ ´Ü°è·Î ³Ñ¾î°¡°Ô µÈ´Ù.
¼ºí¸´ÀÇ ÄÚµå´Â °£´ÜÇÏ´Ù. ÄÚµå´Â CreditCardLocalŸÀÔÀÇ stateful ¼¼¼Ç ºóÀ» »ý¼ºÇϰí À̸¦ "creditCard" ¹ØÀÇ HttpSession¾ÖÆ®¸®ºäÆ®³»¿¡ À§Ä¡½ÃŲ´Ù. ¸¸¾à ¼ºí¸´ÀÌ È£ÃâµÇ¾úÀ» ¶§ ÀÌ¿Í °°Àº º¯¼ö°¡ ÀÌ¹Ì Á¸ÀçÇϰí ÀÖ´Ù¸é, ¼ºí¸´Àº Á¸ÀçÇÏ´ø ÀνºÅϽº¸¦ Á¦°ÅÇÏ°Ô µÈ´Ù.
CreditCardLocal creditCard = (CreditCardLocal)
req.getSession().getAttribute("creditCard");
// Remove it if it exists--we're starting over.
if (creditCard != null) {
try {
creditCard.remove();
} catch (Exception e) {
System.err.println(
"Exception removing credit card: " + e);
}
System.err.println("INFO: Removed previous card.");
}
// Create new enterprise bean reference in session scope
try {
InitialContext ctx = new InitialContext();
CreditCardLocalHome cclh =
(CreditCardLocalHome)ctx.lookup(
"java:comp/env/ejb/CreditCard");
String cardName = req.getParameter("cardName");
String cardType = req.getParameter("cardType");
String cardNumber = req.getParameter("cardNumber");
String cardDate = req.getParameter("cardDate");
creditCard = cclh.create(
cardName, cardNumber, cardType, cardDate);
req.getSession().setAttribute(
"creditCard", creditCard);
} catch (Exception e) {
throw new ServletException(e);
}
RequestDispatcher rd = req.getRequestDispatcher(
"/jsp/ValidateCard.jsp");
rd.forward(req, res);
À§ÀÇ ¸¶Áö¸· 2ÁÙÀ» ÀÚ¼¼È÷ º¸ÀÚ. ¿£ÅÍÇÁ¶óÀÌÁî ºó ·¹ÆÛ·±½º¸¦ »ý¼ºÇÑ ÈÄ¿¡ ¼ºí¸´Àº ÀԷ°ú À¯È¿ÀÎÁõÀ» ´Ù·ç´Â ValidateCard.jsp ÆäÀÌÁö¿¡ ¿äûÀ» º¸³½´Ù.
ÀÌ ÆäÀÌÁöÀÇ Ã¹¹øÂ° ºÎºÐÀº ÆäÀÌÁö¿¡ º¸³»Áø ÆÄ¶ó¹ÌÅ͵éÀ» ¿£ÅÍÇÁ¶óÀÌÁî ºóÀÇ ÇØ´ç ¼Ó¼º¿¡ Ä«ÇÇÇϰí ÀÖ´Ù. <c:set> űװ¡ ÁÖ¾îÁø À̸§ÀÇ ¿£ÅÍÇÁ¶óÀÌÁî ºó ¼Ó¼º¿¡ ¾×¼¼½ºÇϱâ À§ÇØ ¾î¶»°Ô "target" °ú "property"À» »ç¿ëÇϰí ÀÖ´ÂÁö¸¦ »ìÆìº¸ÀÚ. <!-- Copy parameters to creditCard properties -->
<c:set target="${creditCard}" property="name"
value="${param['cardName']}"/>
<c:set target="${creditCard}" property="type"
value="${param['cardType']}"/>
<c:if test="${param.cardNumber != null and
param.cardNumber != ''}">
<c:set target="${creditCard}" property="number"
value="${param.cardNumber}"/>
</c:if>
<c:set target="${creditCard}"
property="expirationDateStr"
value="${param['cardDate']}"/>
¿äûµÈ ÆÄ¶ó¹ÌÅͰ¡ ¼³Á¤µÇÁö ¾Ê¾Ò´Ù¸é ${param['cardName']}°ú °°Àº expressionsÀº null°ªÀ» »êÃâÇÏ°í µû¶ó¼ ÇØ´ç ºóÀÇ ¼Ó¼ºÀº null·Î ¼³Á¤µÈ´Ù.
ValidateCard.jspÆäÀÌÁöÀÇ ´ÙÀ½ ºÎºÐÀº »ç¿ëÀڷκÎÅÍ µ¥ÀÌÅ͸¦ ¼öÁýÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. ÀÌ µ¥ÀÌÅÍ´Â »ç¿ëÀÚ°¡ Á¦Ãâ(submit)¹öưÀ» Ŭ¸¯ÇßÀ» ¶§ µ¿ÀÏÇÑ ÆäÀÌÁö¿¡ ±×´ë·Î ³ªÅ¸³´Ù. ÀÌ ¼½¼ÇÀÇ ÄÚµå´Â ¸î °¡Áö Àç¹ÌÀÖ´Â ±â´ÉµéÀ» Æ÷ÇÔÇϰí ÀÖ´Ù. ÀÌ ÀÔ·ÂÆäÀÌÁö´Â Ç×»ó ÀçÈ£ÃâµÇ±â ¶§¹®¿¡ ´ÙÀ½°ú °°ÀÌ Á¤ÀÇµÈ °¢°¢ÀÇ ÀԷ°ªÀº Å©·¹µ÷ Ä«µåÀÇ ÀԷ°ªÀ» ÇöÀç°ªÀ¸·Î ¼³Á¤ÇÏ´Â ¾ÖÆ®¸®ºäÆ®¸¦ Æ÷ÇÔÇÑ´Ù.
ÀÔ·Â ÆäÀÌÁöÀÇ Ã¹¹øÂ° ¼½¼ÇÀº ·¹À̾ƿô°ú ·ÎÄà ¹è°æ»öÀ» Á¶ÀýÇϱâ À§ÇØ ÇϳªÀÇ Ç¥¸¦ »ç¿ëÇÏ¸é¼ ÀÔ·ÂÆäÀÌÁöÀÇ ÆÄ¶ó¹ÌÅÍÀÎ "cardName"À» À§ÇÑ ÀÔ·Â ¿ä¼Ò¸¦ Á¤ÀÇÇϰí ÀÖ´Ù. <input type="text" name="cardName" size="32"
value="${creditCard.name}"><br>
cardNameÀÇ °ªÀº ´ÙÀ½ÀÇ ÄÚµå¿Í °°ÀÌ EL expression ${creditCard.name}À¸·Î ¼³Á¤µÈ´Ù.
<%= ((CreditCardLocal)request.getSession().
getAttribute("creditCard")).getName() %>
¸¸¾à ÀÌ¿Í °°Àº ÆûÀÌ Àü¿¡ Á¦ÃâµÈ ÀûÀÌ ÀÖ´Ù¸é cardNameÀÔ·Â ¹Ú½º¾È¿¡ ÀÔ·ÂµÈ ÀûÀÌ ÀÖ´Â À̸§µéÀÌ ³ªÅ¸³ª°Ô µÉ °ÍÀÌ´Ù.
´ÙÀ½À¸·Î ÀÔ·ÂÇØ¾ß ÇÒ °ÍÀº °¢°¢ÀÇ Å©·¹µ÷ Ä«µå ŸÀÔ¿¡ Çϳª¾¿ ÇÒ´çµÈ ¶óµð¿À ¹öư ¼¼Æ®ÀÌ´Ù. Å©·¹µ÷ Ä«µå °´Ã¼´Â CCInfo ŸÀÔÀÇ "info" ¼Ó¼ºÀ» °®´Â´Ù. ÀÌ °´Ã¼´Â ¸ðµç À¯È¿ÇÑ Å©·¹µ÷ Ä«µå ŸÀÔ¿¡ °üÇÑ Á¤º¸¸¦ ´ã°í ÀÖ´Â java.util.HashMapÀ̸ç, ÀÌ ¸ÊÀÇ Å°´Â °³°³ÀÇ Å©·¹µ÷ Ä«µå¸¦ ³ªÅ¸³»´Â À̸§µéÀÌ´Ù. °¡·É "mc"´Â MasterCard¸¦ ¸»ÇÑ´Ù. ¿©±â¼ °ªÀº Ä«µå¸¦ ¼³¸íÇÏ´Â °´Ã¼ÀÎ CCDescŸÀÔÀÌ´Ù. (´õ ÀÚ¼¼ÇÑ Á¤º¸´Â ÄÚµå ¿¹Á¦¿¡ Æ÷¸ËµÈ ¼Ò½º Äڵ带 Âü°íÇϱ⠹ٶõ´Ù.) <c:forEach>·çÇÁ¹®Àº °¢°¢ÀÇ Ä«µå ŸÀÔÀ» À§ÇÑ ¶óµð¿À ¹öưÀ» »ý¼ºÇÏ¸é¼ À¯È¿ÇÑ Å©·¹µ÷ Ä«µå ŸÀÔÀÇ ¸®½ºÆ®¸¦ ¹Ýº¹¿¬»êÇÏ°Ô µÈ´Ù. <p>
<b>Type of card:</b><br>
<c:forEach var="item" items="${creditCard.info}">
<input type="radio" name="cardType"
value="${item.key}"
${(item.key eq creditCard.type) ? 'checked' : ''}>
${item.value.description}<br>
</c:forEach>
»ý¼ºµÇ´Â ÁßÀÎ ¹öưÀÌ creditCard °´Ã¼¿¡¼ ¼±ÅõǾú´Ù¸é, ${(item.key eq creditCard.type) ? 'checked' : ''} expressionÀº "checked" ½ºÆ®¸µÀ» »êÃâÇÑ´Ù. ÀÌ ·çÇÁ¹®Àº È®À强ÀÇ ÇüÅ·Π´«¿¡ º¸ÀÌÁö ¾Ê´Â ÀÌÁ¡À» Á¦°øÇÑ´Ù. »õ·Î¿î ŸÀÔÀÇ Å©·¹µ÷ Ä«µå¸¦ Ãß°¡Çϱâ À§Çؼ´Â CCDesc descriptionÀÇ Å¸ÀÔÀ» CreditCardÀÇ CCInfo·Î¸¸ Ãß°¡ÇØÁÖ¸é µÈ´Ù. ´ÙÀ½¹ø¿¡ ValidatePage.jsp°¡ ½ÇÇàµÉ ¶§, ·çÇÁ¹®Àº »õ·Î¿î ŸÀÔÀÇ Ä«µå¸¦ ã¾Æ³»¾î ¸®½ºÆ®¿¡ Ãß°¡ÇÑ´Ù.
´ÙÀ½ 2°³ÀÇ ÀԷ°ªÀº Å©·¹µ÷ Ä«µå ³Ñ¹ö¿Í ¸¸±â ³¯Â¥¸¦ Æ÷ÇÔÇÑ´Ù.
<b>Card number:</b>
<input type="text" name="cardNumber" size="24"
value="${creditCard.number}"><p>
<b>Expiration date (mm/yyyy):</b>
<input type="text" name="cardDate" size="10"
value="${creditCard.expirationDateStr}">
À§ÀÇ °ªµéÀÌ ÇØ´çÇÏ´Â ¿£ÅÍÇÁ¶óÀÌÁî ºóÀÇ ¼Ó¼º °ªµé·Î ¼³Á¤µÇ¾ú´Ù´Â °ÍÀ» ´Ù½Ã Çѹø ÁÖ¸ñÇÏÀÚ.
ÆûÀÇ ¼¼¹øÂ° ºÎºÐÀº ¿¡·¯ ¸Þ½ÃÁö¸¦ º¸¿©Áְųª, Á¶°Ç¿¡ ¸Â´Ù¸é Ä«µå°¡ À¯È¿ÇÏ´Ù´Â °ÍÀ» ³ªÅ¸³»´Â ¸Þ½ÃÁö¸¦ º¸¿©ÁÖ°Ô µÈ´Ù. ÀÌ ¼½¼ÇÀº µÎ°³ÀÇ ÅÂ±× <c:when> °ú <c:otherwise>¸¦ Æ÷ÇÔÇÑ´Ù. ù¹øÂ° ű״ īµå ³Ñ¹ö°¡ nullÀÌ¸é ¿¡·¯ ¸Þ½ÃÁö°¡ ÇÁ¸°Æ®µÇ´Â °ÍÀ» ¸·´Â´Ù. <c:choose>
<c:when
test=
"${creditCard.number == null || creditCard.number == ''}">
<!-- No number, so no need to complain
that it's not valid -->
</c:when>
µÎ¹øÂ° <c:when>ű״ īµå°¡ À¯È¿ÇÒ °æ¿ì ¼º°ø ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÑ´Ù. <c:when test="${creditCard.valid}">
The following card is valid:<br>
<table border="0">
<tr><th align="left">Name:</th>
<td>${creditCard.name}</td>
</tr>
<!-- and so on... -->
</c:when>
ÀÌ ÁöÁ¡¿¡¼, ½ÇÁ¦ ¾ÖÇø®ÄÉÀ̼ÇÀº ¾Æ¸¶µµ »ç¿ëÀÚÀÇ ºê¶ó¿ìÀú¸¦ ºô¸µ ÁÖ¼Ò Á¤º¸¸¦ ¼öÁýÇÏ´Â ÆûÀ¸·Î Àü¼ÛÇÏ°Ô µÉ °ÍÀÌ´Ù. <c:if> ¸¦ À§ÇÑ Å×½ºÆ®´Â booleanÀ̶ó´Â °ÍÀ» ±â¾ïÇÏÀÚ. µû¶ó¼ expression ${creditCard.valid}´Â ¹Ýµå½Ã boolean ŸÀÔÀ̾î¾ß ÇÑ´Ù. ÀÌ ¼Ó¼ºÀ» À§ÇØ »ç¿ëµÇ´Â Á¢±Ù ¸Þ¼Òµå´Â CreditCardLocal.isValid()ÀÌ´Ù. ¿Ö³ÄÇϸé booleanŸÀÔÀÇ ¼Ó¼ºÀ» Á¢±ÙÇϱâ À§ÇÑ ¸Þ¼Òµå´Â "get" ´ë½Å¿¡ "is"¸¦ »ç¿ëÇϱ⠶§¹®ÀÌ´Ù.
¸¶Áö¸· ű×ÀÎ <c:otherwise>´Â Ä«µå°¡ À¯È¿ÇÏÁö ¾ÊÀ» °æ¿ì¸¦ À§ÇÑ °ÍÀÌ´Ù.
<c:otherwise>
<hr>
<font color="red">This number is not valid.</font>
<br>
<i>Problem</i>: ${creditCard.validityMessage}<br>
Please correct the problem and try again.
</c:otherwise>
</c:choose>
CreditCardLocal.getValidityMessage ´Â Ä«µå°¡ À¯È¿ÇÏÁö ¾ÊÀº ÀÌÀ¯¸¦ »ç¿ëÀÚ¿¡°Ô Ä£¼÷ÇÑ ¿¡·¯ ¸Þ½ÃÁö·Î ¸®ÅÏÇÑ´Ù.
ÀÌ ¿¹Á¦ÀÇ À¯¿ëÇÑ ÆÁÀº ¿£ÅÍÇÁ¶óÀÌÁî ºó ÀÎÅÍÆäÀ̽º°¡ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¼¼¼Ç ȤÀº ´Ù¸¥ ÄÁÅØ½ºÆ®¾È¿¡ ÀúÀåµÉ ¼ö ÀÖ°í, JSP EL expressions·Î ÀÛ¼ºµÈ À̸§À¸·Î °Ë»öµÉ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ¾ÖÇø®ÄÉÀÌ¼Ç ·ÎÁ÷ÀÌ scriptlets¿¡ ±¸ÇöµÇ°í ÀÖÁö ¾Ê±â ¶§¹®¿¡ ÀÌ ±â¹ýÀ» »ç¿ëÇϸé ĸ½¶È¸¦ Çâ»ó½Ãų ¼ö ÀÖ´Ù. ÀÌ´Â ¶ÇÇÑ JSPÆäÀÌÁö¸¦ »ý¼ºÇϰí ÀÌÇØÇϰí À¯ÁöÇÏ´Â °ÍÀ» ¿ëÀÌÇÏ°Ô ÇØÁØ´Ù.
»ùÇà ÄÚµå ½ÇÇàÇϱâ
»ùÇà ¾ÆÄ«À̺긦 ´Ù¿î·Îµå
¹ÞÀÚ. ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÄÁÅØ½ºÆ® ·çÆ®´Â ttfeb2004ÀÌ´Ù. ´Ù¿î·ÎµåµÈ ear ÆÄÀÏÀº ¿Ï¼ºµÈ Äڵ嵵 Æ÷ÇÔÇϰí ÀÖ´Ù.
¾ÖÇø®ÄÉÀÌ¼Ç ¾ÆÄ«À̺ê(ttfeb2004.ear)¸¦ deploytoolÇÁ·Î±×·¥À̳ª ¾îµå¹Î ÄܼÖÀ» ÀÌ¿ëÇØ¼ J2EE 1.4 Application Server ¿¡ ¹èÆ÷ÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ ´ÙÀ½°ú °°ÀÌ asadminÄ¿¸Çµå¸¦ Á÷Á¢ ÀÔ·ÂÇØ¼ ¹èÆ÷ÇÒ ¼öµµ ÀÖ´Ù. asadmin deploy install_dir/ttfeb2004.ear
install_dir¸¦ warÆÄÀÏÀ» ÀνºÅçÇÑ µð·ºÅ丮·Î ´ëüÇÏÀÚ.
¾ÖÇø®ÄÉÀ̼ÇÀºhttp://localhost:8000/ttfeb2004¿¡¼ ¾×¼¼½ºÇÒ ¼ö ÀÖ´Ù.
J2EE 1.4 Application Serverº¸´Ù J2EE 1.4¿¡ ¸Â´Â ±¸ÇöÀ» ÇϰíÀÚ ÇÑ´Ù¸é Ç÷§Æû¿¡ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¹èÆ÷Çϱâ À§ÇØ J2EE ÇÁ·Î´öÆ®ÀÇ ¹èÆ÷ ÅøÀ» »ç¿ëÇÏÀÚ.
ÀÌ ¾ÖÇø®ÄÉÀ̼ÇÀ» ½ÇÇàÇϸé, ´ÙÀ½°ú °°Àº ÆäÀÌÁö¸¦ º¸°Ô µÈ´Ù.
º» ¸ÞÀÏÀº ¼ö½ÅÀ» µ¿ÀÇÇÑ È¸¿ø´Ô¿¡°Ô¸¸ ¹ß¼ÛµË´Ï´Ù. °ü·Ã¹®ÀÇ : SunKorea@sun.com
º» ¸ÞÀÏÀÇ ¼ö½ÅÀ» °ÅºÎÇϽ÷Á¸é ¼ö½Å°ÅºÎ¸¦
Ŭ¸¯ÇØ ÁÖ¼¼¿ä.
Copyright 2004 Sun Korea, Inc. All rights reserved.
|