<jsp:forward>
* 하나의 JSP페이지에서 다른 JSP 페이지로 요청 처리를 전달할 때 사용된다.
* 요청 흐름
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 |