본문 바로가기
WEB/JSP Servlet

<jsp:forward>

by 노랑파랑 2016. 10. 28.
반응형




<jsp:forward>

* 하나의 JSP페이지에서 다른 JSP 페이지로 요청 처리를 전달할 때 사용된다.

* 요청 흐름

jsp:forward

1) 웹 브라우저의 요청을 from.jsp에 전달된다

2) from.jsp는 <jsp:forward> 액션 태그를 실행한다.

3) 요청 흐름이 to.jsp로 이동한다.

4) 요청 흐름이 이동할 때 from.jsp에서 사용한 request 기본 객체와 response 기본 객체가 to.jsp 파일로 전달된다.

5) to.jsp가 응답 결과를 생성한다.

6) 생성한 결과가 웹 브라우저로 전달된다.

* from.jsp에서 <jsp:forward>액션 태그를 사용해서 이동한 to.jsp가 생성한 결과가 웹 브라우저에 출력된다. (from.jsp의 출력결과는 삭제된다)

* 웹 브라우저의 주소는 from.jsp 그대로이다. 즉, 리다이렉트처럼 to.jsp로 변경되지 않는다.




1. 사용 방법

* 기본 문법

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



2. 출력 버퍼와의 관계

* <jsp:forward> 액션 태그를 사용한 JSP 페이지의 출력 결과는 웹 브라우저에 전송되지 않는다.


* <jsp:forward>를 실행하기 이전에 출력 버퍼를 비우기 때문에 실행 이전에 출력 버퍼에 저장했던 내용은 웹 브라우저에 전송되지 않는다.

* 또한, 액션 태그의 뒤에 위치한 코드는 실행조차 되지 않는다.

* 그렇기때문에 이 액션태그를 올바르게 동작하기 위해서는 <jsp:forward> 액션 태그를 실행하기 전에 웹 브라우저에 데이터가 전송되면 안된다.

* 버퍼를 사용하지 않을 때에도 <jsp:forward> 액션 태그는 제대로 동작하지 않는다.




3. 활용

* 조건에 따라 다른 결과를 보여줘야 할 때 사용한다.

<%@ page contentType="text/html; charset=utf-8"/>

<%

String forwardPage = null;


//조건에 따라 이동할 페이지 지정

if(조건1){

forwardPage = "페이지 URL";

}   

else {    

forwardPage = "페이지 URL";

}

%>


//파라미터 값에따라 서로 다른 페이지 이동

<%

String option = request.getParameter("option");

if(option.equals("조건값1")) { }

else if (option.equals("조건값2")) { }

...

%>




4. <jsp:param>을 이용해 이동할 페이지에 파라미터 추가 

* <jsp:include>에서와 동작방법이 동일하다. (String 타입의 값만 전달 가능)

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

<jsp:param name="name1" value="value1"/>

<jsp:param name="name2" value="value2"/>

</jsp:forward>

* 기본 객체의 속성을 이용하면 값을 문자열로 변환하는 과정이 필요없기때문에 편리하게 전달 가능.

반응형

'WEB > JSP Servlet' 카테고리의 다른 글

JSTL : 코어 태그  (0) 2016.10.28
표준 태그 라이브러리  (0) 2016.10.28
페이지 모듈화 : include 디렉티브  (0) 2016.10.28
페이지 모듈화 : <jsp:include>  (0) 2016.10.28
세션, 기본 객체 : seesion  (0) 2016.10.28