#<jsp:forward> 액션 태그 사용법
#<jsp:forward>
-하나의 JSP 페이지에서 다른 JSP 페이지로 요청 처리를 전달할 때 사용된다.
-제어권을 포워딩되는 페이지로 넘긴다.
#<jsp:forward> 액션 태그 사용법
<jsp:forward page="포워딩할 JSP 페이지">
.....
</jsp:forward>
#Web-INF폴더는 외부에서 접근이 안된다.
-서버 내부에서 Web-INF로 forward는 가능하다.(내가 정 한 페이지만 넘어가게 지정가능)
#<jsp:forward> 액션 태그를 실행하기 전에 웹 브라우저에 데이터가 전송되면 안 된다.
즉 실행 전에 출력 버퍼를 플러시 하면 에러가 발생한다.
예제 1)
1.from.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%-- <jsp:foward> 액션 태그를 실행하면 생성했던 출력 결과는 모두 제거된다. --%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
이 페이지는 from.jsp가 생성한 것입니다.
<jsp:forward page="./to.jsp" />
</body>
</html>
2.to.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
이페이지는 to.jsp가 생성한 것입니다.
</body>
</html>
-결과 화면
예제 2)
1.select.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<form action="<%= request.getContextPath() %>/test/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>
2.view.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
String code = request.getParameter("code");
String viewPageURI = null;
if(code.equals("A")){
viewPageURI = "a.jsp";
}else if(code.equals("B")){
viewPageURI = "b.jsp";
}else if(code.equals("C")){
viewPageURI = "c.jsp";
}
%>
<jsp:forward page="<%= viewPageURI %>" />
3.a.jsp, b.jsp, c.jsp(Body부분만 다름)
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
A 페이지
</body>
</html>
-결과 화면1
-결과 화면2
#<jsp:forward> 액션 태그 vs 리다이렉트
<jsp:forward> 액션 태그
-request가 1번 발생한다. (request객체를 계속 공유하게 된다.(request가 유지된다.)
-요청이 들어오면 내 애플리케이션 내부에서 이동한다.
-동일한 페이지 이동 기능이 있다.
-단순 페이지 이동에는 더 유리하다.
-쓰기나, 업데이트, 삭제 같은 것은 안된다. (요청이 한 번밖에 안되기 때문이다.)
-forward 액션 태그 밑에 있는 코드는 실행이 안된다.
-사용자는 연결한 URL의 존재를 알지 못한다.(e.g.) from -> to(to의 존재는 모른다.)
-jsp:forward에 의해 호출된 페이지는 호출 한 페이지와 request와 response객체를 서로 공유한다.
리다이렉트
-request가 2번 발생한다. 지그재그 형식이다.
-외부로도 이동이 가능하다.
-쓰기나, 업데이트, 삭제가 가능하다
-리다이렉트 밑에 있는 코드들은 실행이 된다.
-이동한 새로운 페이지에서는 request와 response객체가 새롭게 생성된다.
'IT > JSP' 카테고리의 다른 글
[JSP] - 27. Cookie(쿠키) [생성, 추가, 삭제] 하는 방법 (0) | 2020.07.27 |
---|---|
[JSP] - 26. 자바 빈(JavaBeans), <jsp:useBean> 액션 태그 사용법 (0) | 2020.07.27 |
[JSP] - 24. include 디렉티브 사용법 (0) | 2020.07.25 |
[JSP] - 23. <jsp:param> 액션 태그 사용법 (0) | 2020.07.25 |
[JSP] - 22. <jsp:include> 액션태그 사용법 (0) | 2020.07.24 |
댓글