1) Costructor À̹ø¿£ ConstructorºÎÅÍ ¼³¸íÀ» µå¸±·Á±¸ Çϴµ¥, ÀÌ°Í ¿ª½Ã ¼³¸í µå¸± °ÍÀÌ ¾ø½À´Ï´Ù. ¾Æ¹«°Íµµ ÇÏ´Â ÀÏÀÌ ¾ø°Åµç¿ä.*^^* 2) service (HttpServletRequest, HttpServletResponse) ¸Þ¼Òµå ÀÌ ¸Þ¼Òµå´Â GenericServlet Ŭ·¡½ºÀÇ service¸Þ¼Òµå¸¦ overridingÇÑ ¸Þ¼Òµå·Î¼ À§¿¡¼ ¼³¸íÇÑ °Íó·³ ½ÇÁ¦·Î »ç¿ëµÉ HTTPÀÇ ÇϳªÀÇ ¹æ¹ýÀ» È£ÃâÇØ ÁÖ°Ô µË´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â HTTP protocolÀ» »ç¿ëÇؼ ³Ñ¾î¿Â ÀÚ·áµéÀ» doGet¸Þ¼Òµå³ª doPost¸Þ¼Òµå¸¦ È£ÃâÇÏ°Ô µË´Ï´Ù. Client·ÎºÎÅÍ ³Ñ°ÜÁø ÀÚ·áÀÇ method¸¦ º¸°í GET methodÀ̸é doGet¸Þ¼Òµå¸¦, POST À̸é doPost¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. ¸¸ÀÏ ÀÌ µÎ°¡ÁöÀÇ ¸Þ¼Òµåµµ ´Ù ÇÊ¿ä¾øÀÌ, ±×³É Ãâ·ÂÀ» ³»º¸³»±â¸¸ ÇÑ´Ù¸é(Counter¸¦ ¸¸µç´Ù°í »ý°¢ÇÏ¸é º°·Î Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍ ÀڷḦ ³Ñ°Ü ¹ÞÀ» °ÍÀÌ ¾øÁö¿ä.) ÀÌ service¸Þ¼Òµå¸¦ overridingÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â µÎ °³ÀÇ ÀÎÀÚ¸¦ ¹Þ¾Æ µéÀ̴µ¥¿ä, Çϳª´Â HttpServletRequestÀÌ°í, ¶Ç´Ù¸¥ Çϳª´Â HttpServletResponseÀÔ´Ï´Ù. ÀÌ µÎ °³ÀÇ object ´Â Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍ ¿äû¹ÞÀº ÀڷḦ response¿Í Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍÀÇ ÀڷḦ ¿äûÇÏ´Â requestÀÇ ¿ªÇÒÀ» ÇØ ÁÝ´Ï´Ù. ÀÌ·± ¸Þ¼ÒµåµéÀº Â÷ÈÄ¿¡ ´Ù½Ã ¼³¸íÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù. 3) service (ServletRequest, ServletResponse) ¸Þ¼Òµå ÀÌ ¸Þ¼Òµå´Â GenericServlet Ŭ·¡½ºÀÇ service¸Þ¼Òµå¸¦ overridingÇÑ ¸Þ¼ÒµåÀÔ´Ï´Ù. º°·Î »ç¿ëÀÌ ¾ÈµÈ´Ù°í µÇ¾î Àִµ¥ »ç½ÇÀÔ´Ï´Ù. HTTP±â¹Ý¿¡¼ÀÇ servletÀ» ÀÛ¼ºÇϴµ¥ overridingÀ» ÇÒ ÇÊ¿ä°¡ ¾ø½À´Ï´Ù. service¸Þ¼Òµå´Â µÎ °³ÀÇ ÀÎÀÚ¸¦ ¹Þ¾Æ µéÀ̴µ¥, Çϳª´Â ServletRequestÀÌ°í, ¶Ç´Ù¸¥ Çϳª´Â ServletResponseÀÔ´Ï´Ù. ServletRequest object´Â interface·Î¼ Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍ º¸³»Áö´Â parameterµé°ú, inputstreamÀ» Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù. ±×¸®°í ServletResponse object´Â client·Î infomationÀ» µ¹·ÁÁÖ±â À§ÇÑoutputstreamÀ» °¡Áö°í ÀÖ½À´Ï´Ù. ÀÌ µÎ °³ÀÇ object¸¦ »ç¿ëÇÏ¿©¼ service¸¦ ó¸®ÇØ ÁÙ ¼ö ÀÖ½À´Ï´Ù. ±×·¯¹Ç·Î servletÀº ¸ðµç ÇÁ·ÎÅäÄÝ¿¡ ´ëÇؼ ÀÌ service¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ÀÀ´äÀ» ¸¸µé¾î ³¾ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í ¾ÆÁÖ Áß¿äÇÑ °ÍÀε¥, ÀÌ ¸Þ¼Òµå´Â Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍÀÇ ¿äûÀÌ ¿Ã ¶§¸¶´Ù ´Ù¸¥ thread°¡ ¶ß¸é¼ ÀÌ ¸Þ¼Òµå¸¦ ½ÇÇà ÇÕ´Ï´Ù. ±×·¡¼ ÀÌ ¸Þ¼Òµå´Â ÇÊ¿äÇÏ´Ù¸é synchronized ±¸ÇöÇÏ¿©¾ß ÇÕ´Ï´Ù. 4) doGet ¸Þ¼Òµå ÀÌ ¸Þ¼Òµç ¾ÆÁÖ Áß¿äÇÑ ¸Þ¼ÒµåÀÔ´Ï´Ù. HTTP GET operationÀ» ó¸®ÇØ ÁÖ´Â ¸Þ¼Òµå·Î¼, Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍ GETÇü½ÄÀ¸·Î ÀÚ·á°¡ ³Ñ¾î¿À¸é service¸Þ¼Òµå¿¡¼ ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. ¿ø·¡ÀÇ HttpServlet¿¡¼ÀÇ doGet¸Þ¼Òµå´Â ¾Æ¹«°Íµµ ÇÏÁö ¾Ê½À´Ï´Ù. ±×·¯³ª ¼ºí¸´À» ÀÛ¼ºÇÏ´Â »ç¶÷ÀÌ ÀÌ ¸Þ¼Òµå¸¦ overridingÇÏ¸é¼ ÀÌ ¸Þ¼Òµå´Â »ý¸íÀ» °®°Ô µË´Ï´Ù. ÀÎÀڷδ HttpServletResponse object¿Í HttpServletRequest object¸¦ ¹Þ¾Æ µéÀ̱¸¿ä, µÎ objectµéÀº GenericServletŬ·¡½º¿¡¼¿Í ¸¶Âù°¡Áö·Î Ŭ¶óÀ̾ðÆ®ÀÇ ¿äû°ú ¼¹öÃøÀÇ Á¤º¸¸¦ Ŭ¶óÀ̾ðÆ®·Î º¸³»´Âµ¥ »ç¿ëµË´Ï´Ù. ¸¸ÀÏ doGet¸¸ overridingÇÑ servletÀ» get¹æ½ÄÀ¸·Î È£ÃâÇÑ´Ù¸é HTTP BAD_REQUEST error°¡ ¹ß»ýÇÏ°Ô µË´Ï´Ù. ÀÌ ¸Þ¼Òµå¸¦ overridingÇÒ ¶§´Â ¸î°¡Áö ÇÒ ÀÏÀÌ ÀÖ½À´Ï´Ù. ¿ì¼± request¿¡¼ ÇÊ¿äÇÑ parameterµéÀ» ¹Þ¾Æ µéÀÎ ÈÄ¿¡, content typeÀ» Ãâ·ÂÇÏ°í, ±×¿¡ ¸Â´Â Ãâ·ÂÀ» ÇÏ¸é µË´Ï´Ù. ÀÌ ¸Þ¼Òµåµµ ¿ª½Ã serviceó·³ ÇÊ¿äÇÏ´Ù¸é synchronized¿¡ °ü·ÃµÈ °í·Á¸¦ ÇØ ÁÖ¾î¾ß¸¸ ÇÕ´Ï´Ù. 5) doPost ¸Þ¼Òµå ÀÌ ¸Þ¼Òµåµµ ¿ª½Ã ¾ÆÁÖ Áß¿äÇÑ ¸Þ¼Òµå·Î¼ doGet¸Þ¼Òµå¿Í °ÅÀÇ ¸ðµç ¼ºÁúÀÌ ºñ½ÁÇÕ´Ï´Ù. ±×·¯³ª ÀÌ°Ç POSTÇüÀ¸·Î ÀÚ·á°¡ Àü¼ÛµÇ¾î ¿Â´Ù´Â Á¡¸¸ µå¸³´Ï´Ù. ¸¸ÀÏ doPost¸Þ¼Òµå¸¸ ¿À¹ö¶óÀ̵ùµÈ ¼ºí¸´¿¡¼ GETÇü½ÄÀÇ ¿äûÀ» ÇØ ¿Â´Ù¸é, HTTP BAD_REQUEST¿¡·¯¸¦ ³À´Ï´Ù. ÀÌ ¸Þ¼Òµå doGet°ú °°Àº object¸¦ parameter·Î ¹Þ¾Æ µéÀÌ°í, ÇÊ¿äÇÑ ÀÏÀ» ¼öÇàÇÏ´Â ¸Þ¼ÒµåÀÔ´Ï´Ù.ÀÌ ¸Þ¼Òµåµµ ¿ª½Ã serviceó·³ ÇÊ¿äÇÏ´Ù¸é synchronized¿¡ °ü·ÃµÈ °í·Á¸¦ ÇØ ÁÖ¾î¾ß¸¸ ÇÕ´Ï´Ù. ÀÌ·¸°Ô Çؼ Servlet¿¡ ÀÖ´Â Áß¿äÇÑ Å¬·¡½º¿¡ ´ëÇÑ ¼³¸íÀº ³¡³ µí Çϱº¿ä. ÀÌ¿Ü¿¡µµ HttpUtilÀÇ Å¬·¡½ºµî ¸î °³°¡ ÀÖ±¸¿ä, ÀÌ·± Ŭ·¡½ºµéÀº ³ªÁß¿¡ ´Ù½Ã ¼³¸íÀ» Çϱâ·Î Çϱ¸¿ä(Á¤¸» ÇÒÁö´Â Àß ¸ð¸£°Ú³×¿ä....»ç½Ç Å« ¾µ¸ðµÎ ¾ø´øµ¥.....--;) ÀÌÁ¦´Â ½ÇÁ¦·Î ¼ºí¸´ Ŭ·¡½ºµéÀ» ¿¹¸¦ µé¾î °¡¸é¼ ¸¸µé¾î º¸µµ·Ï ÇÏ°Ú½À´Ï´Ù. |