¼Ò¼³°°ÀºJSP1ºÎ  5Àå Core of JSP  04 ³»À尴ü request, response  

 

04 ³»À尴ü request, response

 

ÀÌÁ¦ JSPÀÇ ³»À尴ü¿¡ ´ëÇØ¼­ ÀÚ¼¼È÷ ¾Ë¾Æ º¸°Ú½À´Ï´Ù. ³»À尴ü¶ó´Â °ÍÀº <% %> ¾È¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÀÚµ¿À¸·Î »ý¼ºµÈ °´Ã¼ÀÔ´Ï´Ù. ¸ÕÀú »ý°¢ÇØ º¼ ³»À尴ü´Â _jspService¸Þ¼­µåÀÇ ¸Å°³º¯¼ö·Î µé¾î°¡´Â request, responseÀÔ´Ï´Ù. ¿ì¸®´Â ¼­ºí¸´¿¡¼­ µÎ °´Ã¼¿¡ ´ëÇØ¼­ ÀÚ¼¼È÷ ¹è¿ü½À´Ï´Ù. ±×¸®°í ¼­ºí¸´°ú JSP¿¡¼­ ¸Å°³º¯¼ö·Î »ç¿ëµÇ´Â request¿Í response´Â °°´Ù°í ¼³¸íÇÏ¿´½À´Ï´Ù. µÎ °´Ã¼ request, response¿¡ ´ëÇØ¼­ ±Ã±ÝÇϽŠºÐÀº ¾ÕÀåÀ» ÂüÁ¶ÇÏ½Ã±æ ¹Ù¶ø´Ï´Ù. ¼­ºí¸´°ú JSP°¡ °°´Ù°í Çߴµ¥ ±× ¸»À» Áõ¸íÇØ º¸°Ú½À´Ï´Ù. ¾Õ¿¡¼­ ¼­ºí¸´À¸·Î requestÀÇ ¸Þ½ÃÁö¸¦ º¸³»¾î ÆäÀÌÁö¸¦ ¹Þ¾Æ³»´Â ¿¹Á¦¸¦ °¡Áö°í JSP·Î º¯È¯Çؼ­ ½ÇÇàÇØ º¸°Ú½À´Ï´Ù.

 

¿¹Á¦¿¡¼­ Ŭ¶óÀÌ¾ðÆ®°¡ ¸Þ½ÃÁö¸¦ ¿äûÇÏ°í ¼­¹ö¿¡¼­ ±×¿¡ ´ëÇÑ ÀÀ´äÀ» Çϱâ À§ÇÏ¿© HTTP¼­¹ö°¡ ó¸®ÇÏ´Â °úÁ¤Àº ¸î ´Ü°èÀÇ ÀýÂ÷¸¦ °ÅÄ¡°Ô µÈ´Ù´Â °ÍÀ» ¹è¿ü½À´Ï´Ù. ¾Æ·¡ ±×¸²Àº Ŭ¶óÀÌ¾ðÆ®°¡ ¸Þ½ÃÁö¸¦ ¿äûÇÒ ¶§ HTTP¼­¹ö°¡ ó¸®ÇÏ´Â °úÁ¤À» ±×¸²À¸·Î ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. ¾Õ Àå¿¡¼­ ³ª¿Ô´ø ±×¸²ÀÔ´Ï´Ù¸¸ È®½ÇÈ÷ ÀÌÇØ ÇÏÁö ¸øÇÑ ºÐµéÀ» À§ÇØ ´Ù½Ã Çѹø º¸¿©µå¸³´Ï´Ù.

 

 

 ¸ÕÀú request ¸Þ½ÃÁö¸¦ ¸¸µé¾î¾ß ÇÕ´Ï´Ù. ±×¸®°í request¸Þ½ÃÁö¸¦ HTTPÀ¥¼­¹ö·Î º¸³»¸é responseµ¥ÀÌÅ͸¦ ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀ» JSP ÇÁ·Î±×·¥À¸·Î Áõ¸íÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

RequestMessage.jsp

request Message¿Í response Message Áõ¸í

<%@ page contentType= "text/html;charset = euc-kr"%>

<%@ page import = " java.net.*,java.io.*"%>

<%

    InetAddress webServer = InetAddress.getByName("kr.yahoo.com");

    Socket httpPipe = new Socket(webServer, 80);//À¥¼­¹öÆ÷Æ®:80

    InputStream is = httpPipe.getInputStream();

    PrintStream os = new PrintStream(httpPipe.getOutputStream());

             os.println("GET " + "/index.html" + " HTTP/1.0\n");// send GET HTTP request

    int temp;

             CharArrayWriter caw= new CharArrayWriter();

    while ( (temp = is.read())!=-1) {

      caw.write(temp);

    }

    out.write(caw.toCharArray());

    os.close();

    is.close();

%>

 

¾ÕÀåÀÇ ³»¿ë°ú ¸¹Àº ºÎºÐÀÌ Áߺ¹µË´Ï´Ù. º¹½ÀÇÏ´Â ¸¶À½À¸·Î º¸°í °¡½Ã±â ¹Ù¶ø´Ï´Ù.

 

Åë½ÅÇϱâ À§ÇÑ ¼ÒÄÏÀ» »ý¼ºÇϰí ÀÖ½À´Ï´Ù. ÇöÀç ¿¬°áÇÏ·Á°í ÇÏ´Â ¼­¹ö´Â http://kr.yahoo.com/index.htmlÀÔ´Ï´Ù. ŸÄÏ URLÀ» ÀÌ¿ëÇÏ¿© ¼ÒÄÏÀ» »ý¼ºÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù.

 

n        InetAddress webServer = InetAddress.getByName("kr.yahoo.com");

n        Socket httpPipe = new Socket(webServer, 80);//À¥¼­¹öÆ÷Æ®:80

 

¼ÒÄÏÀÌ ¹«»çÈ÷ »ý¼ºµÇ¾ú´Ù¸é ¿©·¯ºÐµéÀº ÇØ´ç ¼ÒÄÏ¿¡ ÀԷ½ºÆ®¸²°ú Ãâ·Â½ºÆ®¸²À» »ý¼ºÇϽøé À¥¼­¹ö·Î µ¥ÀÌÅ͸¦ º¸³»°Å³ª µ¥ÀÌÅ͸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½°ú °°Àº ±¸¹®À¸·Î »ý¼ºµÈ ¼ÒÄÏ¿¡ ½ºÆ®¸²À» ¿­°í ÀÖ½À´Ï´Ù.

 

 

n        InputStream is = httpPipe.getInputStream();

n        PrintStream os = new PrintStream(httpPipe.getOutputStream());

 

½ºÆ®¸²ÀÌ »ý¼ºµÇ¾ú´Ù¸é Ãâ·Â½ºÆ®¸²À» ÀÌ¿ëÇÏ¿© ¿¬°áµÈ À¥¼­¹ö¿¡ ¿äû¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù. ¿äû¸Þ½ÃÁö¸¦ ¸¸µå´Â ¹æ¹ý¿¡ ´ëÇØ¼­´Â ¾Õ Àå¿¡¼­ ³íÇÏ¿´À¸´Ï Âü°íÇϽñ⠹ٶø´Ï´Ù. ±×¸®°í, °ø¹éÀ» »ðÀÔÇØ¾ß ÇÏ´Â °ÍÀ» ÀØÁö ¸¶½Ã±â ¹Ù¶ø´Ï´Ù.

 

n        os.println("GET " + "/index.html" + " HTTP/1.0\n");

 

Ãâ·Â ½ºÆ®¸²À¸·Î request¸Þ½ÃÁö¸¦ º¸³½´Ù¸é ¼ÒÄÏ¿¡ ¿¬°áµÈ ÀԷ½ºÆ®¸²À¸·Î µ¥ÀÌÅͰ¡ µé¾î¿À°Ô µÉ °ÍÀÔ´Ï´Ù. µ¥ÀÌÅ͸¦ CharArrayWriter¿¡ ÀûÀçÇϰí ÀûÀçµÈ ¹ÙÀÌÆ®µéÀ» JSPÀÇ out½ºÆ®¸²À¸·Î Ãâ·ÂÇØ¼­ º¸³»°í ÀÖ½À´Ï´Ù.

 

n        int temp;

n        CharArrayWriter caw = new CharArrayWriter ();

n        while ( (temp = is.read())!=-1) {

n           caw.write(temp);

n        }

n        out.write(caw.toCharArray());

 

 ¿©±â¿¡¼­ ¼­ºí¸´ÀÇ ¿¹Á¦¿Í ´Ù¸¥ ºÎºÐÀÌ ³ª¿É´Ï´Ù. ¼­ºí¸´ÀÇ ¿¹Á¦¿¡¼­´Â ByteArrayStreamÀ» »ç¿ëÇÏ¿´½À´Ï´Ù. ÇÏÁö¸¸ JSP¿¡¼­´Â CharArrayWriter¸¦ »ç¿ëÇÏ¿´½À´Ï´Ù. ¼­ºí¸´¿¡¼­´Â Ŭ¶óÀÌ¾ðÆ®·Î Ãâ·ÂÇϱâ À§ÇØ ByteArrayStreamÀ» »ç¿ëÇÏ¿´½À´Ï´Ù. ÇÏÁö¸¸ JSP¿¡¼­´Â Ŭ¶óÀÌ¾ðÆ®·Î Ãâ·ÂÇϱâÀ§ÇØ CharArrayWriter¸¦ »ç¿ëÇÕ´Ï´Ù. µÎ Â÷ÀÌÁ¡À» ±â¾ïÇØ µÎ½Ã±â ¹Ù¶ø´Ï´Ù.

 

 ÀÌ Àý¿¡¼­ ¿©·¯ºÐÀº 4Àå¿¡¼­ ³ª¿Â ¿¹Á¦¸¦ º¹½ÀÇϰí ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ´Ü¼øÈ÷ ¼­ºí¸´À» JSP·Î À̽ÄÇÑ °ÍÀÌ ¾Æ´Ï¶ó ¼­ºí¸´¿¡ »ç¿ëÇÏ´ø ¸ðµç request¿Í responseÀÇ ¸Þ¼­µåµéÀ» ±×´ë·Î JSP¿¡¼­ »ç¿ëÇÏ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. request¿Í response´Â ÇÙ½ÉÀûÀÎ JSPÀÇ ¿ä¼ÒÀ̱⠶§¹®¿¡ ¼­ºí¸´°ú JSP¿¡¼­ Àß ºñ±³Çϸ鼭 ÇнÀÇϽñ⠹ٶø´Ï´Ù.



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºJSP1ºÎ
ÀúÀÚ:ÃÖ¿µ°ü