페이지 이동 방식
•
forward
•
redirect
웹 페이지를 이동하는 방식은 2가지로 나누어 볼 수 있다.
forward 방식
forward : “전달하다”
•
서버 내부에서 요청 경로 A 가 B 로 요청을 전달하며 페이지로 이동하는 방식
•
특징
◦
원래의 요청 정보(request) 및 응답 정보(response)를 그대로 사용
◦
클라이언트는 이동한 페이지 B 를 응답 받지만, 주소 표시줄의 요청 URL 은 그대로임
◦
조회(읽기) 요청을 하는 경우에 주로 사용
redirect 방식
redirect : “다시 지시하다”
•
서버가 요청 경로 A 로 요청을 받은 후, 클라이언트에게 B 로 다시 요청하라고 지시하며 페이지를 이동하는 방식
•
특징
◦
클라이언트가 원래의 요청과 달리 완전히 다른 새로운 요청을 하여, 기존의 요청 정보는 이후의 요청에서는 사용할 수 없음
◦
이동한 화면에서 주소 표시줄의 URL 이 A 에서 B 로 변화됨
◦
등록, 수정, 삭제 요청 시에 주로 사용
forward 방식으로 페이지 이동하기
실습 파일
•
forward_A.jsp
•
forward.B.jsp
forward_A.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>페이지 이동 - Forward</title>
</head>
<body>
<h1>페이지 이동 - Forward</h1>
<h2>forward A 화면</h2>
<jsp:forward page="forward_B.jsp" />
<p>-------------------------------</p>
</body>
</html>
HTML
복사
forward_B.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>페이지 이동 - Forward</title>
</head>
<body>
<h1>페이지 이동 - Forward</h1>
<h2>forward B 화면</h2>
<a href="../index.jsp">메인 페이지</a>
</body>
</html>
HTML
복사
결과 화면
redirect 방식으로 페이지 이동하기
실습 파일
•
redirect01_A.jsp
•
redirect01.B.jsp
•
RedirectServlet.java
redirect01_A.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>페이지 이동 - Redirect</title>
</head>
<body>
<h1>페이지 이동 - Redirect</h1>
<h2>redirect/redirect01_A.jsp</h2>
<a href="redirect">페이지 이동 (redirect)</a>
</body>
</html>
HTML
복사
redirect01_B.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>페이지 이동 - Redirect</title>
</head>
<body>
<h1>페이지 이동 - Redirect</h1>
<h2>redirect/redirect01_B.jsp</h2>
<a href="../index.jsp">메인 페이지</a>
</body>
</html>
HTML
복사
RedirectServlet.java
package redirect;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/redirect/redirect")
public class RedirectServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.sendRedirect("redirect01_B.jsp");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
HTML
복사










