현재
[JSP] forward, redirect 본문
<forward(서버 내부 전환)>
● forward는 서버 내부에서 페이지 전환을 수행한다. 때문에 브라우저는 새로운 요청을 생성하지 않고
현재 요청과 동일한 요청을 사용한다.
● forward를 사용하면 웹 어플리케이션 내에서 페이지 전환을 수행하며, 공유 데이터나 속성을 유지하면서 전환된다.
-request 부터 response 까지가 1 Cycle 이다-
○ forward 요청 ( request ) - > Servlet 호출 -> 코드에 해당하는것을 reponse
JSP 에서 : <jsp:forward page=""></jsp:forward> 를 통해 포워딩한다.
Java 에서 : RequestDispatcher dispatcher = request.getRequestDispatcher("newPage.jsp");
dispatcher.forward(request, response);
webapp/forward.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
System.out.println("forward.jsp 실행됨..");
%>
<jsp:forward page="./to.jsp"></jsp:forward>
<!-- 브라우저는 request를 한다
forward는 url바뀌지 않음 request가 1회 호출함.
링크가 변한다? 호출의 횟수가 변할 수 있다.
forwarding은 내부에서 호출됨. 내부에서 다른 Servlet을 호출함
forward 요청 -> Servlet 호출 -> : 1회 리퀘스트함(이뜻은 웹브라우저는 내부에서 무슨일
일어났는지 모름)
1회가 끝날때 to를 response
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
이거는 !!forward!! jsp 입니다..
</body>
</html>
<redirect>
● redirect는 브라우저에게 새로운 요처을 생성하라고 지시, 브라우저는 새로운 요청을 서버로 전송하며 URL이 변경된다.
● redirect를 사용하면 브라우저가 새로운 URL을 요청하고 이전 요청과는 별개의 요청으로 처리된다.
-request 부터 response 까지가 2 Cycle 이다-
○ redirect ( request ) -> 다른 url 주소 ( response ) -> 다른 url 주소 ( request ) (?) 호출 2회
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
System.out.println("redirect.jsp 실행됨..");
response.sendRedirect("./to.jsp");
%>
<!-- redirect(재전송)는 url도 to로 변경됨 -->
<!-- 브라우저는 request를 한다
redirect는 url바뀜 request가 2회 호출함.
링크가 변한다? 호출의 횟수가 변할 수 있다.
redirect요청이 오면 redirect를해라고 다시 웹브라우저에 리턴해준다.
요청 -> redirect -> 응답(브라우저로 리턴) ( 여기까지가 1회 호출 )
브라우저에서 to를 다시 요청
1회가 끝날때 redirect을 response
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
이거는 !!redirect!! jsp 입니다..
</body>
</html>
webapp/to.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
이거는 !!to!! jsp 입니다..
</body>
</html>'웹 프로그래밍 > JSP' 카테고리의 다른 글
| [JSP] Cookie (0) | 2023.10.18 |
|---|---|
| [JSP] tomcat 저장공간 Application, Session, Request, Page (2) | 2023.10.18 |
| [JSP] include, header, footer (0) | 2023.10.18 |
| [JSP] get, post, QueryString, form 및 데이터 전송 (1) | 2023.10.18 |
| [JSP] 지시자 및 기본 주석처리 (0) | 2023.10.18 |