ÀÚ¹Ù °øºÎÇϽô ºÐµé Çʵµ¼ ÀÔÁÒ~ ¾ÆÁÖ ±ú±ßÇÏ°Ô º»Ã¥ÀÔ´Ï´Ù.
1. ¼ºí¸´°ú JSP´Â ¾îµð¿¡ ¾²´Â ¹°°ÇÀΰí?: ¼¹® ÇнÀ ¸ñÇ¥ À¥ ¼¹ö¿Í Ŭ¶óÀ̾ðÆ®´Â ¹«¾ùÀ» Çϳª¿ä, ¾î¶»°Ô ´ëÈÇÏÁÒ? 2ºÐÂ¥¸® HTML °¡À̵å HTTP ÇÁ·ÎÅäÄÝ. ³Í ´©±¸³Ä! HTTP GET, POST ¿äû ¹× HTTP ÀÀ´äÀ» ÇغÎÇغ¸ÀÚ. URL·Î À¥ ÆäÀÌÁö°¡ ¾îµð ÀÖ´ÂÁö ¾î¶»°Ô ¾ËÁö? À¥ ¼¹ö, Á¤ÀûÀÎ À¥ ÆäÀÌÁö ±×¸®°í CGI ¼ºí¸´ÀÇ ½Åºñ¸¦ ¹þ°Üº¸ÀÚ: ÀÛ¼º, ¹èÆ÷, ½ÇÇà JSP´Â "HTML¿¡ ÀÚ¹Ù¸¦ ³ÖÀ» ¼ø ¾øÀ»±î"¶ó´Â °í¹Î¿¡¼ ź»ýÇߴٳ׿ä. 2. À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ¾ÆÅ°ÅØó: °³¿ä ÇнÀ ¸ñÇ¥ ÄÁÅ×À̳ÊÀÇ Á¤Ã¼´Â ¹«¾ùÀÌ¸ç °³¹ßÀÚ¿¡°Ô ¾î¶² ÀǹÌÀÌÁÒ? ÄÚµå´Â ¾î¶² ¸ð½ÀÀϱî?(¹«¾ùÀÌ ¼ºí¸´À» ¼ºí¸´´ä°Ô ¸¸µå´Â°¡) ¼ºí¸´¿¡ À̸§À» ºÙÀÎ µÚ DD¿¡¼ URL°ú¸ÅÇÎÇϱ⠽ºÅ丮: ¹äÀº Áö±Ý °áÈ¥Á¤º¸ »çÀÌÆ®¸¦ ¸¸µé°íÀÚ ÇÕ´Ï´Ù(MVC µµÀÔ) MVC µðÀÚÀÎ ÆÐÅÏÀº ÀÌ·± ¹®Á¦¸¦ ÇØ°áÇÕ´Ï´Ù. ½ÇÁ¦ ¹èÆ÷ ¼¼úÀÚ(DD) J2EE¿¡´Â ¹«¾ùÀÌ µé¾î ÀÖ³ª 3. ÃÊ °£´Ü ¹Ì´Ï MVC Æ©Å丮¾ó: ½ÇÀü MVC ¾ÖÇø®ÄÉÀÌ¼Ç ÇнÀ ¸ñÇ¥ MVC ¾ÖÇø®ÄÉÀ̼ÇÀ» ºôµåÇغ¸ÀÚ; ¸ÕÀú ¼³°èºÎÅÍ ÇÏ°í... °³¹ß ¹× ¹èÆ÷ ȯ°æÀ» ¸¸µé¾îº¸ÀÚ Á¦ÀÏ Ã¹ ȸé HTML Äڵ带 ¸¸µé¾î Å×½ºÆ®ÇÏÀÚ ¹èÆ÷ ¼¼úÀÚ(DD)¸¦ ¸¸µé´Ù ¼ºí¸´ ÄÁÆ®·Ñ·¯¸¦ »ý¼º, ÄÄÆÄÀÏ, ¹èÆ÷, Å×½ºÆ®ÇÏ´Ù ¸ðµ¨ ÄÄÆ÷³ÍÆ®¸¦ µðÀÚÀÎ, ºôµå, Å×½ºÆ®ÇÏ´Ù ÄÁÆ®·Ñ·¯°¡ ¸ðµ¨À» È£ÃâÇϵµ·Ï È®ÀåÇÏ´Ù ºä ÄÄÆ÷³ÍÆ®¸¦ ¸¸µç ´ÙÀ½ ¹èÆ÷ÇÏ´Ù(ÀÌ°Í JSPÀÔ´Ï´Ù) ¼ºí¸´ ÄÁÆ®·Ñ·¯°¡ ºä ÄÄÆ÷³ÍÆ®¸¦ È£ÃâÇϵµ·Ï È®ÀåÇÏ´Ù 4. ¼ºí¸´ÀÌ µÇ¾î º¸ÀÚ: ¿äû°ú ÀÀ´ä ÇнÀ ¸ñÇ¥ ÄÁÅ×ÀÌ³Ê ¾È¿¡¼ ¼ºí¸´ÀÇ ÀÏ»ý ¼ºí¸´ ÃʱâÈ¿Í ½º·¹µå ±×·¯³ª ¼ºí¸´ÀÇ º»¿¬ÀÇ ÀÓ¹«´Â GET, POST ¿äûÀ» Çڵ鸵 ÇÏ´Â °ÍÀÔ´Ï´Ù ¸èµîÀÌ ¾Æ´Ñ ¿äû À̾߱â. GET ¿äûÀ» º¸³¾Áö POST ¿äûÀ» º¸³¾Áö ¾î¶»°Ô °áÁ¤Çմϱî? ÆĶó¹ÌÅÍ Àü¼Û ¹× »ç¿ëÇϱâ Áö±Ý±îÁö´Â Request¿´°í¡¦ ÀÌÁ¦ Response¿¡ ´ëÇØ ¾Ë¾Æº¸ÁÒ. Response Çì´õ¿¡ °ªÀ» ¼³Á¤ÇÒ ¼öµµ °ªÀ» Ãß°¡ÇÒ ¼öµµ Àִٳ׿ä. ¸®´ÙÀÌ·ºÆ® ´ë Request µð½ºÆÐÄ¡ ¸®ºä: HttpServletResponse 5. À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÌ µÇ¾î º¸ÀÚ: ¼Ó¼º°ú ¸®½º³Ê ÇнÀ ¸ñÇ¥ ÃʱâÈ ÆĶó¹ÌÅÍ¿Í À§±â¿¡¼ ±¸ÇØ ÁØ ServletConfig JSP¿¡¼ ¼ºí¸´ ÃʱâÈ ÆĶó¹ÌÅÍ´Â ¾î¶»°Ô Á¢±ÙÇϳª¿ä? À§±â¿¡¼ ±¸ÇØ ÁØ ÄÁÅؽºÆ® ÃʱâÈ ÆĶó¹ÌÅÍ ServletConfig¿Í ServletContext ºñ±³ ±×³à°¡ ¿øÇÑ °ÇServletContextListener¿´´Ù Æ©Å丮¾ó: °£´ÜÇÑ ServletContextListener ¸®ºä °³¹ßÇÑ ¸®½º³Ê ÄÄÆÄÀÏ, ¹èÆ÷ ±×¸®°í Å×½ºÆ® ServletContextListener¿¡ ´ëÇÑ ¸ðµç °Í, ¸®ºä ¸®½º³Ê 8°³: ÄÁÅؽºÆ® À̺¥Æ® ¸®½º³Ê ¸»°í ±× ¿Ü... Á¤È®È÷ ¼Ó¼ºÀ̶ó´Â °Í, »ýÁ¸ ¹üÀ§¶ó´Â °ÍÀÌ ¹«¾ùÀԴϱî? ¼Ó¼º API ¹× ¼Ó¼ºÀÇ ¾îµÎ¿î ¸éµé... Context »ýÁ¸ ¹üÀ§´Â ½º·¹µå_¾ÈÀü(thread_safe)ÇÏÁö ¸øÇÏ´Ù? ¾î¶»°Ô Çϸé ÄÁÅؽºÆ® ¼Ó¼ºÀ» ½º·¹µå_¾ÈÀüÇÏ°Ô ¸¸µé ¼ö ÀÖ³ª¿ä? µ¿±âÈ Çغ¸°Ú´Ù°í¿ä? ¼¼¼Ç ¼Ó¼ºÀº ½º·¹µå_¾ÈÀüÇÑ°¡? SingleThreadModelÀÇ ÆóÇØ. ´ÜÁö Request ¼Ó¼º°ú Áö¿ª º¯¼ö¸¸ÀÌ ½º·¹µå ¾ÈÀüÇÕ´Ï´Ù. Request ¼Ó¼º°ú Request µð½ºÆÐÄ¡ 6. ´ëÈ »óÅ À¯ÁöÇϱâ: ºó/¿£Æ¼Æ¼ µ¿±âÈ ÇнÀ ¸ñÇ¥ ½ÇÁ¦ ´ëȶó°í »ý°¢Çغ¾½Ã´Ù(¼¼¼ÇÀÌ ¾î¶»°Ô ÀÛµ¿ÇÏÁÒ) ¼¼¼Ç ID, ÄíÅ°, ±âŸ ¼¼¼Ç¿¡ ´ëÇÑ ±âÃÊ... ÀÌ·² ¶§ ³ªÅ¸³ ¿ì¸®ÀÇ ÇØ°á»ç: URL ÀçÀÛ¼º ¼¼¼ÇÀÌ ¿À·¡µÇ¾ú³×¿ä: À½¡¦±×·¸´Ù¸é ¾î¶»°Ô Á¦°ÅÇÏ¸é µÉ±î? ÄíÅ°´Â ¼¼¼ÇÀ» »ç¿ëÇϱâ À§Çؼ¸¸ ÇÊ¿äÇϳª¿ä? ¾Æ´Ï¸é ´Ù¸¥ µ¥¿¡µµ ¾²³ª¿ä? HttpSession »î¿¡ ÀÖ¾î ÁÖ¿ä ¼ø°£µé. HttpSessionBindingListener¸¦ ¹ú½á ÀØÀº °Ç ¾Æ´ÏÁÒ? ¼¼¼Ç À̵¿ ¸®½º³Ê ¿¹Á¦ 7. JSP°¡ µÇ¾î º¸ÀÚ: JSP ÄÚµå ÀÛ¼ºÇϱâ ÇнÀ ¸ñÇ¥ page Áö½ÃÀÚ¿Í "out"À¸·Î ÃÊ °£´Ü JSP ¸¸µé±â JSP Ç¥Çö½Ä, º¯¼ö ¹× ¼±¾ð ÀÌÁ¦ JSP°¡ ¸¸µç ¼ºí¸´ÀÌ µîÀåÇÒ ½Ã°£ÀÌ µÇ¾ú±º¿ä out¸¸ÀÌ ³»Àå °´Ã¼´Â ¾Æ´Õ´Ï´Ù. JSPÀÇ ÃʱâÈ¿Í ÀÏ»ý ÀÌ¿Í °ü·ÃÇؼ, 3°¡Áö Áö½ÃÀÚ¿¡ ´ëÇÑ ¾ê±â¸¦ Á»´õ Çغ¸ÁÒ. ½ºÅ©¸³Æ²¸´ÀÌ ¿Ö ³ª»Ú´Ù´Â °ÅÁÒ? EL µîÀåÀÌ¿ä. Àá±ñ¸¸... ¾ÆÁ÷ »ìÆ캸Áö ¾ÊÀº JSP ¿ä¼Ò°¡ Àִµ¥¿ä: ¾×¼Ç 8. ½ºÅ©¸³Æ®°¡ ¾ø´Â ÆäÀÌÁö: ½ºÅ©¸³Æ®°¡ ¾ø´Â JSP ÇнÀ ¸ñÇ¥ ¼Ó¼ºÀÌ ºóÀÏ ¶§ Ç¥ÁØ ¾×¼Ç: useBean, getProperty, setProperty ºó ÂüÁ¶¿¡ ´ÙÇü¼º ±â¹ýÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï±î? À̶§ Çý¼ºÃ³·³ ³ªÅ¸³ ¼Ó¼º param ÇÁ·ÎÆÛƼ º¯È¯ Ç¥Çö½Ä ¾ð¾î(EL)°¡ ´äÀÌ´Ù! µµÆ®(.) ¿¬»êÀÚ·Î ÇÁ·ÎÆÛƼ ¹× ¸Ê Á¢±ÙÇϱâ [] ¿¬»êÀÚ´Â µµÆ® ¿¬»êÀÚ º¸´Ù ¸·°ÇÕ´Ï´Ù. µµÆ® ¿¬»êÀÚ¿Í [] ¿¬»êÀÚ¿¡ ´ëÇÑ ±âŸ »çÇ× EL ³»Àå °´Ã¼ EL ÇÔ¼ö¿Í ³Î(null) ó¸® Àç»ç¿ë °¡´ÉÇÑ ÅÛÇø´ Á¶°¢µé 2°¡Áö "include" Ç¥ÁØ ¾×¼Ç ±×³à´Â JSTL ű׸¦ ¸ô¶ú´ø °ÍÀÌ´Ù.(¹Ì¸® º¸±â) ºó °ü·Ã Ç¥ÁØ ¾×¼Ç ¹× include ¸®ºä 9. ¸·°ÇÑ Ä¿½ºÅÒ Å±×: JSTL ÀÛ¼º ÇнÀ ¸ñÇ¥ ½ºÅ©¸³Æà ¾øÀÌ ·çÇÎ µ¹¸®±â: ¿Í ű׷ΠÁ¶°Ç¹® ¸¸µé±â °ú ÅÂ±× »ç¿ëÇϱâ