Forwarding

์„œ๋ธ”๋ฆฟ ๋˜๋Š” JSP์—์„œ ์š”์ฒญ์„ ๋ฐ›์€ ํ›„์— ๋‹ค๋ฅธ component๋กœ ์š”์ฒญ์„ ์œ„์ž„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๊ฒƒ์„ ํฌ์›Œ๋”ฉ์ด๋ผํ•œ๋‹ค.

ํฌ์›Œ๋”ฉ ๋ฐฉ๋ฒ•์—๋Š” 2๊ฐœ์˜ ํด๋ž˜์Šค(RequestDispatcher, HttpServletResponse)๋ฅผ ์ด์šฉํ•œ๋‹ค.

RequestDispatcher ํด๋ž˜์Šค

์š”์ฒญ๋ฐ›์€ ์š”์ฒญ๊ฐ์ฒด(request)๋ฅผ ์œ„์ž„๋ฐ›๋Š” ์ปดํฌ๋„ŒํŠธ(S2)์— ๋™์ผํ•˜๊ฒŒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ์ œ

dispatcher.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>

        dispacherJsp.jsp
        <hr />

        id : <%= request.getAttribute("id") %> <br />
        pw : <%= request.getAttribute("pw") %>

</body>
</html>

RequestObj.java

package com.javalec.ex;

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 RequestObj
 */
@WebServlet("/RequestObj")
public class RequestObj extends HttpServlet {
    private static final long serialVersionUID = 1L;

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

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        System.out.println("doGet");
        actionDo(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        System.out.println("doPost");
        actionDo(request, response);
    }

    private void actionDo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        System.out.println("actionDo");

        request.setAttribute("id", "abcde");
        request.setAttribute("pw", "12345");

        RequestDispatcher dispatcher = request.getRequestDispatcher("/dispacherJsp.jsp");
        dispatcher.forward(request, response);

    }
}
RequestDispatcher dispatcher = request.getRequestDispatcher("/dispacherJsp.jsp");
dispatcher.forward(request, response);

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ค€ request๊ฐ์ฒด์—์„œ getRequestDispatcher("์œ„์ž„๋ฐ›์„ ์ปดํฌ๋„ŒํŠธ") ๋กœ ์ƒ์„ฑํ•ด์ค€๋‹ค.

dispatcher.forward ๋กœ ์ „๋‹ฌํ•ด์ค€๋‹ค. ๋‘ ํŒŒ์ผ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ผ์ด ๋™์ผํ•œ request๋ผ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

HttpServletResponse ํด๋ž˜์Šค

Request๋ฅผ ์œ„์ž„ํ•˜๋Š” ํด๋ž˜์Šค์ด๋‹ค. ํ•˜์ง€๋งŒ RequestDispatcher ํด๋ž˜์Šค์™€์˜ ์ฐจ์ด์ ์€ ์š”์ฒญ๋ฐ›์€ ๊ฐ์ฒด๋ฅผ ์œ„์ž„ ๋ฐ›๋Š” ์ปดํฌ๋„ŒํŠธ์— ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

์˜ˆ์ œ

JSP

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>

        <%
            request.setAttribute("id", "abcde");
            request.setAttribute("pw", "12345");

            response.sendRedirect("RequestObj");
        %>

</body>
</html>

response.sendRedirect("RequestObj"); ๊ฐ€ HttpServletResponse ๊ฐ์ฒด์ด๋‹ค.

RequestObj.java

package com.javalec.ex;

import java.io.IOException;
import java.io.PrintWriter;

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 RequestObj
 */
@WebServlet("/RequestObj")
public class RequestObj extends HttpServlet {
    private static final long serialVersionUID = 1L;

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

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        System.out.println("doGet");
        actionDo(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        System.out.println("doPost");
        actionDo(request, response);
    }

    private void actionDo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        System.out.println("actionDo");

        String id = (String)request.getAttribute("id");
        String pw = (String)request.getAttribute("pw");

        response.setContentType("text/jhtml; charset=EUC-KR");
        PrintWriter writer = response.getWriter();
        writer.print("<html><head></head><body>");
        writer.print("RequestObj" + "<hr />");
        writer.print("id : " + id + "<br />");
        writer.print("pw : " + pw);
        writer.print("</body></html>");

    }
}
id: null
pw: null

null๊ฐ’์ด ๋œจ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์œ„์ž„์„ ํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋ฐ”๋กœ ์ „๋‹ฌ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋‹ค์‹œ ์œ„์ž„ ๋ฐ›์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์š”์ฒญํ•œ๋‹ค. ์ƒˆ๋กœ์šด ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์ „๋‹ฌ๋˜๋ฏ€๋กœ ์š”์ฒญ๋ฐ›์€ ์ปดํฌ๋„ŒํŠธ์— setAttribute ํ•ด์ค€ ๊ฐ’์€ ์œ„์ž„๋ฐ›์€ Component๋กœ ์ „๋‹ฌ๋˜์ง€ ์•Š๋Š”๋‹ค.

Last updated

Was this helpful?