forward - accidentlywoo/legacyVue GitHub Wiki

forward

  • ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— WAS์˜ ์„œ๋ธ”๋ฆฟ์ด๋‚˜ JSP๊ฐ€ ์š”์ฒญ์„ ๋ฐ›์€ ํ›„ ๊ทธ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋‹ค๊ฐ€, ์ถ”๊ฐ€์ ์ธ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ™์€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์•ˆ์— ํฌํ•จ๋œ ๋‹ค๋ฅธ ์„œ๋ธ”๋ฆฟ์ด๋‚˜ JSP์—๊ฒŒ ์œ„์ž„ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๋ฐ ์œ„์ž„ํ•˜๋Š” ๊ฒƒ์„ ํฌ์›Œ๋“œ(Forward)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—” ์ด๋Ÿฌํ•œ ํฌ์›Œ๋“œ์— ๋Œ€ํ•ด์„œ ์ข€ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ•™์Šต ๋ชฉํ‘œ

  1. Forward๋ฅผ ์ดํ•ดํ•œ๋‹ค.
  2. Forward๋ฅผ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•ต์‹ฌ ๊ฐœ๋…

  • RequestDispatcher
  • forward()

ํ•™์Šตํ•˜๊ธฐ

Forward ๋ž€?

  1. ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ Servlet1์—๊ฒŒ ์š”์ฒญ์„ ๋ณด๋ƒ„
  2. Servlet1์€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ ํ›„, ๊ทธ ๊ฒฐ๊ณผ๋ฅผ HttpServletRequest์— ์ €์žฅ.
  3. Servlet1์€ ๊ฒฐ๊ณผ๊ฐ€ ์ €์žฅ๋œ HttpServletRequest์™€ ์‘๋‹ต์„ ์œ„ํ•œ HttpServletResponse๋ฅผ ๊ฐ™์€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•ˆ์— ์žˆ๋Š” Servlet2์—๊ฒŒ ์ „์†ก(forward)
  4. Servlet2๋Š” Servlet1์œผ๋กœ ๋ถ€ํ„ฐ ๋ฐ›์€ HttpServletRequest์™€ HttpServletResponse๋ฅผ ์ด์šฉํ•˜์—ฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ ํ›„ ์›น ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ๊ฒฐ๊ณผ๋ฅผ ์ „์†ก

์‹ค์Šต์ฝ”๋“œ

FrontServlet.java `package examples;

import java.io.IOException;

import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;

/**

  • Servlet implementation class FrontServlet */ @WebServlet("/front") public class FrontServlet extends HttpServlet { private static final long serialVersionUID = 1L;

    /**

    • @see HttpServlet#HttpServlet() */ public FrontServlet() { super(); // TODO Auto-generated constructor stub }

    /**

    • @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response) */ protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

       int diceValue = (int)(Math.random() * 6) + 1; 
       request.setAttribute("dice", diceValue);
       
       RequestDispatcher requestDispatehcer = request.getRequestDispatcher("/next");
       requestDispatehcer.forward(request, response);
      

    }

}`

NextSevlet.java `package examples;

import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration;

import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;

/**

  • Servlet implementation class ForwardServlet */ @WebServlet("/forward") public class ForwardServlet extends HttpServlet { private static final long serialVersionUID = 1L;

    /**

    • @see HttpServlet#HttpServlet() */ public ForwardServlet() { super(); // TODO Auto-generated constructor stub }

    /**

    • @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response) */ protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(""); out.println("

      <title>form</title>"); out.println("");

      int dice = (Integer)request.getAttribute("dice"); out.println("dice : " + dice); for(int i = 0; i < dice; i++) { out.print("
      hello"); } out.println(""); out.println(""); }

}`

์ƒ๊ฐํ•ด๋ณด๊ธฐ

  1. ์„œ๋ธ”๋ฆฟ์€ ํ”„๋กœ๊ทธ๋žจ ๋กœ์ง์„ ๊ฐœ๋ฐœํ•˜๊ธฐ์— ํŽธ๋ฆฌํ•˜์ง€๋งŒ, HTML ํƒœ๊ทธ๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ์—” ๋ถˆํŽธํ•ฉ๋‹ˆ๋‹ค. JSP๋Š” ํ”„๋กœ๊ทธ๋žจ ๋กœ์ง์„ ๊ฐœ๋ฐœํ•˜๊ธฐ๋Š” ์ข€ ๋ถˆํŽธํ•˜์ง€๋งŒ, HTMLํƒœ๊ทธ๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ์—” ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ธ”๋ฆฟ๊ณผ JSP๋Š” ์„œ๋กœ ์žฅ๋‹จ์ ์ด ๋ฐ˜๋Œ€์ž…๋‹ˆ๋‹ค. ํฌ์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์ด๋Ÿฌํ•œ ๋‹จ์ ์„ ํ•ด๊ฒฐํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”?
โš ๏ธ **GitHub.com Fallback** โš ๏ธ