- response 와 forward 차이
- 클라이언트가 새로 페이지를 요청한 것과 같은 방식으로 페이지가 이동됨.
request, response가 유지되지 않음.(새로 만들어짐.)
- 이동된 url이 화면에 보임.
response 객체는 브라우저에 결과를 전달해 주는 객체.
내부에 출력 버퍼를 가지고 있다.
브라우저에 결과를 전달 할 때 다른 페이지를 요청하도록 할 수 있다.
=> 이러한 기능을 redirect.
response1.jsp 페이지 요청시 respons2.jsp 페이지가 출력됨.
브라우저의 요청으로 호출되므로 url이 response2.jsp로 변경됨.

📌
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%--/jsp/src/main/webapp/chap4/response1.jsp --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>응답 객체 : response</title>
</head>
<body>
<h2>지금 작성 중인 내용은 화면에 출력되지 않습니다.</h2>
<h3>response 객체는 브라우저에 결과를 전달해 주는 객체 입니다.<br>
내부에 출력 버퍼를 가지고 있습니다. <br>
브라우저에 결과를 전달 할 때 다른 페이지를 요청하도록 할 수 있습니다.
=> 이러한 기능을 redirect 라고 합니다.
</h3>
<%-- 브라우저로 명령문 전달 --%>
<% response.sendRedirect("response2.jsp"); %>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%--/jsp/src/main/webapp/chap4/response2.jsp --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>리다이렉트된 페이지</title>
<%-- 리다이렉트 : url이 바뀐다 = 브라우저가 다시 요청했구나 라는 사실을 알 수 있음. --%>
</head>
<body>
<h2>response2,jsp 페이지 입니다.</h2>
response1.jsp 페이지 요청시 이 페이지가 출력됩니다. <br>
브라우저의 요청으로 호출되므로 url이 response2.jsp로 변경됩니다.
</body>
</html>
- forward
- request에 담긴 값이 유효하다.(request, response가 유지됨.)
- 이동된 url이 화면에 보이지 않음.(사용자는 이동했는지 알 수 없다.)
forward1.jsp 페이지와 forward2.jsp 페이지는 같은 request 객체를 공유.
=> 같은 request 영역.
forward1.jsp 페이지를 요청하면 forward2.jsp 페이지가 출력됨.
하지만 url은 forward1.jsp로 남아 있다.

📌
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%--/jsp/src/main/webapp/chap4/forward1.jsp --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>forward 하는 페이지</title>
</head>
<body>
<%--forward1.jsp 페이지와 forward2.jsp 페이지는 같은 request 객체를 공유한다.
=> 같은 request 영역이다.
--%>
<h2>forward 하는 페이지 입니다. 이 내용은 화면에 출력되지 않습니다.</h2>
<% pageContext.forward("forward2.jsp"); %>
<%-- name=test : get 방식으로 파라미터 전달. --%>
<http://localhost:8080/jsp/chap4/forward1.jsp?name=test>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%--/jsp/src/main/webapp/chap4/forward2.jsp --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>forward 된 페이지</title>
</head>
<body>
<%--forward1.jsp 페이지와 forward2.jsp 페이지는 같은 request 객체를 공유한다.
=> 같은 request 영역이다.
--%>
<h2>forward2.jsp 페이지 입니다.</h2>
forward1.jsp 페이지를 요청하면 forward2.jsp 페이지가 출력됩니다.
하지만 url은 forward1.jsp로 남아있습니다.
<hr>
<h3>name=<%=request.getParameter("name") %></h3>
</body>
</html>
'수업(국비지원) > JSP' 카테고리의 다른 글
| [JSP] 내장 객체 - 영역 담당 객체: PageContext 객체 (0) | 2023.04.18 |
|---|---|
| [JSP] 내장 객체 - out 내장 객체 (0) | 2023.04.18 |
| [JSP] 내장 객체 - 내장 객체, request 요청 객체 (0) | 2023.04.18 |
| [JSP] JSP 구성 요소 - include 지시어, 스크립트 예제(스크립트릿<%%>, 표현식<%=%>) (0) | 2023.04.18 |
| [JSP] JSP 구성 요소 - Page 디렉티브, Jsp 페이지에서 사용되는 주석 (0) | 2023.04.18 |