ÀÌÁ¦ 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ºÎ ÀúÀÚ:ÃÖ¿µ°ü |