Class HttpServlet

HttpServlet class´Â ½ÇÁ¦·Î ¿ì¸®°¡ ¼­ºí¸´À» ÀÛ¼ºÇÒ¶§ »ó¼Ó¹Þ´Â Ŭ·¡½ºÀÔ´Ï´Ù. ÀÌ Å¬·¡½º´Â À§¿¡¼­ ¼³¸íÇÑ GenericServletÀ» »ó¼Ó¹ÞÀº Ŭ·¡½º·Î¼­ ÀÌÀüÀÇ °­Á¸¦ º¸¸é ¸ðµç Ŭ·¡½ºµéÀÌ ÀÌ HttpServlet class¸¦ »ó¼Ó¹ÞÀº °ÍÀ» ¾Ë ¼ö ÀÖÀ»°Ì´Ï´Ù. ÀÌ Å¬·¡½º´Â service ¸Þ¼Òµå¸¦ overrideÇؼ­ ÀûÀýÇÑ ¸Þ¼Òµå¸¦ È£Ãâ ÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿´½À´Ï´Ù. ¹«½¼ ÀÇ¹Ì³Ä¸é ½ÇÁ¦ ¼­ºí¸´ÀÌ ½ÇÇàµÉ ¶§´Â GenericServletÀÇ service¸Þ¼Òµå¸¦ overridingÇÑ HttpServletŬ·¡½ºÀÇ service¸Þ¼Òµå°¡ È£ÃâµÇ±¸¿ä, ÀÌ ¸Þ¼Òµå´Â Ŭ¶óÀ̾ðÆ®°¡ ¿äûÇϸ鼭 º¸³»Áø ÀÚ·áÀÇ ÇüÅ¿¡ µû¶ó¼­ doGet, doPostÀÇ ¸Þ¼Òµå°¡ °¢°¢ È£ÃâµÇµµ·Ï µÇ¾î ÀÖ½À´Ï´Ù. ±×·¯´Ï±î, ½ÇÁ¦·Î ¼­ºí¸´À» ÀÛ¼ºÇÒ ¶§¿¡´Â service¸Þ¼Òµå¸¦ overridingÇÏ´Â °Ô ¾Æ´Ï¶ó, doGet, doPostÀÇ ¸Þ¼ÒµåÁß¿¡¼­ Çϳª¸¦ overridingÇÏ´Â °ÍÀÔ´Ï´Ù. ½ÇÁ¦·Î »ç¿ëÀÌ µÇ´Â Ŭ·¡½ºÀÌ´Ï Àß ¾Ë¾Æ¾ß ÇÏ°ÚÁö¿ä?

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ÀÇ Å¬·¡½ºµî ¸î °³°¡ ÀÖ±¸¿ä, ÀÌ·± Ŭ·¡½ºµéÀº ³ªÁß¿¡ ´Ù½Ã ¼³¸íÀ» Çϱâ·Î Çϱ¸¿ä(Á¤¸» ÇÒÁö´Â Àß ¸ð¸£°Ú³×¿ä....»ç½Ç Å« ¾µ¸ðµÎ ¾ø´øµ¥.....--;) ÀÌÁ¦´Â ½ÇÁ¦·Î ¼­ºí¸´ Ŭ·¡½ºµéÀ» ¿¹¸¦ µé¾î °¡¸é¼­ ¸¸µé¾î º¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.




ÀÌÀü »óÀ§ ´ÙÀ½
¨Ï 1999 Lee Min Goo, All rights are reserved Last modified 1999
If you have any question, send mail to bluehope