¼Ò¼³°°ÀºJSP1ºÎ  4Àå Core of Servlet  21 RequestDespatcher-forward  

 

21 RequestDespatcher– forward

 

 RequestDespatcher´Â Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ ¿äû ¹ÞÀº Á¤º¸¸¦ ¼­¹öÀÇ Html, JSP ¶Ç´Â ServletµîÀÇ ÀÚ¿ø¿¡ º¸³»´Â ¿ªÇÒÀ» ÇÏ´Â ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. ³»¿ëÀ» »ìÆìº¸¸é ¿äû ¹ÞÀº ³»¿ëÀ» ¼­ºí¸´¿¡¼­ ´Ù¸¥ ¼­ºí¸´, JSP ¶Ç´Â HtmlÆÄÀÏ µîÀ¸·Î º¸³»ÁÖ´Â forward ¸Þ¼­µå¿Í ´Ù¸¥ ÆäÀÌÁöÀÇ ³»¿ëÀ» ¼­ºí¸´¿¡ Æ÷ÇÔ½ÃÄÑ ÀÀ´äÇÏ´Â include ¸Þ¼­µå·Î ±¸¼ºµË´Ï´Ù.

 

ResquestDespatcherÀÎÅÍÆäÀ̽ºÀÇ ±¸¼º

n        public void forward(ServletRequest request, ServletResponse response)

n        public void include(ServletRequest request, ServletResponse response)

 

 ÀÌ Àý¿¡¼­´Â forward¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸°í ´ÙÀ½Àý¿¡¼­ include¿¡ ´ëÇØ¼­ ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. ¿ì¼± forward´Â Ŭ¶óÀ̾ðÆ®ÀÇ ¿äû¿¡ ÇØ´çµÇ´Â request¿Í response¸¦ ´Ù¸¥ servlet¿¡ ³Ñ°Ü Áָ鼭 ÀÛ¾÷À» ¸ðµÎ ¸Ã±â´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ´Ù¸¥ ÆäÀÌÁö·Î forwardingµÇ¸é Á¦¾î±Ç±îÁö forwardingµÇ°Ô µË´Ï´Ù. ¿©±â¼­ ÇѰ¡Áö ÁÖÀÇÇÏ½Ç °ÍÀº forwarding½Ãų¶§ request¿Í  response ÀÌÀüÀÇ ¼­ºí¸´¿¡¼­ ³Ñ°Ü ¹Þ´Â °ÍÀ» ÁÖÀÇÇϽñ⠹ٶø´Ï´Ù. ÀÌ¿Í °°Àº ¿ø¸®¸¦ ±×¸²À¸·Î ³ªÅ¸³»¸é ¾Æ·¡¿Í °°½À´Ï´Ù.

 

 

 ´ÙÀ½ÀÇ ¿¹Á¦´Â RequestDespatcherÀÇ forward ¸Þ¼­µå¸¦ »ç¿ëÇÏ¿© Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ ¹ÞÀº Á¤º¸¸¦ ´Ù¸¥ ¼­ºí¸´À¸·Î º¸³»¼­ Ãâ·ÂÇÏ°Ô ¸¸µå´Â ¿¹Á¦ ÀÔ´Ï´Ù.

 

DespatcherForward.java

´Ù¸¥ ¼­ºí¸´À¸·Î ¿äûÁ¤º¸¸¦ º¸³»´Â ¼­ºí¸´

package chap4;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class DespatcherForward extends HttpServlet{
  
public void doGet(HttpServletRequest request, HttpServletResponse response) 

throws IOException, ServletException{
    ServletContext sc = getServletContext();
    RequestDispatcher rd = sc.getRequestDispatcher (
"/servlet/chap4.DespatcherReceive");
    rd.forward(request, response);

  }
}

 

DespatcherReceive.java

¿äûÁ¤º¸¸¦ ó¸®ÇÏ´Â ¼­ºí¸´

package chap4;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class DespatcherReceive extends HttpServlet{
  
public void doGet(HttpServletRequest request, HttpServletResponse response)

  throws IOException, ServletException{
    response.setContentType(
"text/html;charset=euc-kr");
    String message = request.getParameter(
"command");
    PrintWriter out = response.getWriter();
    out.println(
"<HTML><BODY>");
    out.println(
"DespatcherReceive ¼­ºí¸´");
    out.println(
"<H1>"+ message + "</H1>");
    out.println(
"</BODY></HTML>");
  }
}

 

¸ÕÀú forward¸¦ »ç¿ëÇϱâ À§Çؼ­´Â ServletContext¸¦ ¾ò¾î ³»¾î¾ß ÇÕ´Ï´Ù. ÀÌ ServletContext´Â ¼­ºí¸´ ³»¿¡¼­ getServletContext()¸Þ¼­µå¸¦ ÀÌ¿ëÇÏ¿© ¾ò¾î ³¾ ¼ö ÀÖÀ¸¸ç  ServletContext¸¦ ¾ò¾ú´Ù¸é »ý¼ºµÈ ServletContext °´Ã¼¸¦ ÀÌ¿ëÇÏ¿© RequestDispatcher¸¦ »ý¼ºÇÕ´Ï´Ù. ÀÌ ¶§ forwardÇÒ ¼­ºí¸´ÀÇ ÁÖ¼Ò¸¦ ÀÔ·ÂÇϸé RequestDispatcher¸¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

 DespatcherForward.javaÀÇ ³»¿ëÀ» º¸½Ã¸é ´ÜÁö doGet ¸Þ¼­µå¸¦ »ç¿ëÇÏ¿© Ŭ¶óÀ̾ðÆ®ÀÇ Á¤º¸¸¦ ¹ÞÀº ÈÄ RequestDespatcherÀÇ forward ¸Þ¼­µå¸¦ »ç¿ëÇØ¼­ DespatcherResponse ¼­ºí¸´À¸·Î »ç¿ëÀÚ ¿äûÀ» º¸³»°í(forwarding)Çϰí Àִ°ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. ´«¿©°Ü º¼ °ÍÀÌ RequestDespatcherÀÇ °´Ã¼¸¦ »ý¼ºÇϱâ À§ÇÏ¿© ServletContextÀÇ getRequestDispatcher ¸Þ¼­µå¸¦ »ç¿ëÇß´Ù´Â °ÍÀÔ´Ï´Ù.

 

n        ServletContext sc = getServletContext();

n        RequestDispatcher rd = sc.getRequestDispatcher ("/servlet/chap4.DespatcherReceive");

n        rd.forward(request, response);

 

 DespatcherResponse.java¿¡¼­´Â ³Ñ±ä »ç¿ëÀÚ ¿äû Á¤º¸¸¦ ¹Þ¾Æ¼­ htmlÇü½ÄÀ» ¸¸µé¾î¼­ È­¸é¿¡ Ãâ·ÂÇØ ÁÖ°í ÀÖ½À´Ï´Ù.

 

n        String message = request.getParameter("command");

n        out.println("<H1>"+ message + "</H1>");

 

°á°ú¸¦ º¸½Ã¸é À¥ºê¶ó¿ìÀú¿¡¼­ ¸Þ¼¼Áö¸¦ ÀÔ·ÂÇÏ¿© DespatcherRequest¼­ºí¸´À» È£ÃâÇÏ¸é ±× Á¤º¸°¡ forwardingµÇ´Â DespatcherResponse¼­ºí¸´À¸·Î ³Ñ°ÜÁ®¼­ Ãâ·ÂµÊÀ» ¾Ë ¼ö ÀÖÀ¸½Ç °ÍÀÔ´Ï´Ù.

 

¿©±â¼­ ÇѰ¡Áö Èï¹Ì·Î¿î Á¡Àº À¥ºê¶ó¿ìÀúÀÇ ÁÖ¼ÒÁÙÀ» º¸½Ã¸é ¾Ë ¼ö ÀÖµíÀÌ ´Ù¸¥ ¼­ºí¸´À¸·Î »ç¿ëÀÚ Á¤º¸¸¦ ³Ñ°Ü¼­, Á¤º¸¸¦ ¹ÞÀº ÆäÀÌÁö¿¡¼­ ¿äûÀ» ó¸®ÇÏ¿© Ãâ·Â±îÁö ÇØÁÖÁö¸¸, À¥ºê¶ó¿ìÀúÀÇ ÁÖ¼ÒÁÙÀº ¿ø·¡ È£ÃâÇÑ ±× ÁÖ¼Ò°¡ ¹Ù²îÁö ¾Ê´Â´Ù´Â °ÍÀÔ´Ï´Ù.  ÀÌ·¯ÇÑ ¿ø¸®¸¦ ÀÌ¿ëÇϸé, »ç¿ëÀÚÀÇ ¿äûÁ¤º¸¸¦ ºÐ¼®ÇÏ¿© ±×¿¡ ¸Â´Â °¢°¢ÀÇ ÆäÀÌÁö·Î º¸³»¼­ ¿äûÀ» ó¸®Çصµ ¸¶Ä¡ ÇϳªÀÇ ÆäÀÌÁö¿¡¼­ 󸮵ǴµíÇÑ È¿°ú¸¦ ¾òÀ¸½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.



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