프로그래밍/JSP Servlet

JSP/Servlet - forward 메소드 사용법

가카리 2015. 12. 21. 21:51
반응형

forward 메소드는 jsp 페이지 안에서 다른 jsp 페이지를 호출할 때 사용하는 메소드이다.

 

하지만 이 메소드는 호출된 jsp 페이지가 끝나도 실행 흐름의 제어를 되돌려주지 않습니다.

 

데이터를 처리하는 jsp 페이지가 그 결과를 출력하는 jsp 페이지를 호출할 때 사용할 수 있습니다.

 

forward 메소드를 사용하기 위해서는 먼저 request 내장 변수에 대해 getRequestDispatcher 메소

 

드를 호출해서 얻어야 합니다.

 

getRequestDispatcher 메소드 호출할 때는 forward 메소드가 호출할 jsp 페이지의 URL 경로명을

 

파라미터로 넘겨줘야 합니다.

 

이번 예제는 다음과 같이 파일을 구성합니다.

 

 

 

FourRules.html

 

<!DOCTYPE html>

<html>

<head>

<meta charset="EUC-KR">

<title>Insert title here</title>

</head>

<body>

    <FORM ACTION=FourRules.jsp>

        첫번째 : <INPUT TYPE=TEXT NAME=NUM1><BR>

        두번째 : <INPUT TYPE=TEXT NAME=NUM2><BR>

        <INPUT TYPE=SUBMIT VALUE='입력'>

    </FORM>

</body>

</html>

 

 

FourRules.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>

<%

    String str1 = request.getParameter("NUM1");

    String str2 = request.getParameter("NUM2");

    int num1 = Integer.parseInt(str1);

    int num2 = Integer.parseInt(str2);

    request.setAttribute("SUM", new Integer(num1 + num2));

    request.setAttribute("DIFFERENCE", new Integer(num1 - num2));

    request.setAttribute("PRODUCT", new Integer(num1 * num2));

    request.setAttribute("QUOTIENT", new Integer(num1 / num2));

    

    //forward 메소드 사용을 위해 다음과 같이

    RequestDispatcher dispatcher = request.getRequestDispatcher("FourRulesResult.jsp");

    dispatcher.forward(request, response);

%>

</body>

</html>

 

 

FourRulesResult.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.getAttribute("SUM") %><BR>

    뺄셈의 결과는? <%= request.getAttribute("DIFFERENCE") %><BR>

    곱셈의 결과는? <%= request.getAttribute("PRODUCT") %><BR>

    나눗셈의 결과는? <%= request.getAttribute("QUOTIENT") %><BR>

</body>

</html>

 

실행 화면

 

 

 

 

반응형