티스토리 뷰

반응형

<jsp:forward> 액션태그

 

<jsp:forward> 액션태그는 하나의 jsp 페이지에서 다른 jsp 페이지로 요청 처리를 전달할 때 사용됩니다. <jsp:inclde>와 include 디렉티브와는 다음과 같은 차이점이 있습니다.

 

<jsp:forward>를 통해 요청 처리를 전달받은 페이지가 응답 결과를 웹 브라우저에게 요청을 합니다.

 

요청 처리를 전달받은 페이지는 요청 전달을 했던 페이지의 기본 객체를 그대로 사용합니다.

 

<jsp:forward> 액션 태그는 간결하고 구조적인 프로그래밍을 위해 사용이 되며 다양한 조건에 따른 처리를 해야 하는 경우 <jsp:forward> 액션 태그를 사용하여 각 조건을 처리하는 jsp를 분리하여 기능별로 모듈화가 가능합니다.

 

<jsp:forward> 액션 태그의 기본 문법은 다음과 같습니다.

 

<jsp:forward page="이동할 페이지"/>

 

실제 조건에 따라서 처리를 할 수 있는 jsp 페이지를 모듈화하고 조건에 따라 <jsp:forward>를 통해 요청 처리를 전달해보는 예제를 살펴보겠습니다.

 

 

<예제>

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
    이동하실 페이지를 선택하세요.
    <form action="view.jsp">
        <select name="code">
            <option value="A">A</option>
            <option value="B">B</option>
            <option value="C">C</option>
        </select>
        <input type="submit" value="이동"/>
    </form>
</body>
</html>

 

먼저 간단한 form을 구현하도록 합니다. 어떤 option 태그를 선택하느냐에 따라 응답 결과가 다르게 구현해 보겠습니다.

 

 

다음으로 '이동' 버튼을 클릭 하였을 때 처리 요청을 받는 view.jsp의 내용입니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
    <%
        String select_item= request.getParameter("code");
        String pageURL=null;
        
        if(select_item.equals("A"))
        {
            pageURL = "/A.jsp";
        }
        else if(select_item.equals("B"))
        {
            pageURL = "/B.jsp";
        }
        else if(select_item.equals("C"))
        {
            pageURL = "/C.jsp";
        }
    %>
    <jsp:forward page="<%=pageURL %>" />
 

view.jsp는 select 되어진 item의 값을 requeste.getParameter()를 통해 얻어와서

if~else if를 통해서 읽어온 값에 따라 pageURL의 값을 설정해줍니다. 최종적으로 pageURL의 값에 따라서 <jsp:forward>태그를 통해 처리 흐름을 이동합니다.

 

A.jsp, B.jsp, C.jsp는 별내용은 없고 그저 자신이 없던 페이지의 응답 결과인지 보여주는 문자열을 보여줍니다.

 

 

반응형