⭐️ 포워딩과 리다이렉트란 ?
웹 앱에서 다른 페이지로 이동을 하는 경우가 자주 발생하는데 , 이때 사용되는 대표적인 방법이
포워딩(Forwarding)과 리다이렉트(Redirect)가 있다.
🔥 포워딩(Forwarding)이란 ?
포워딩은 클라이언트의 요청을 유지한 채로 서버 내에서
다른 페이지로 이동(서블릿 위임)하는 방식이다.
즉, 브라우저의 URL이 바뀌지 않고, 기존 요청(Request)과 응답(Response)가 유지된다.
-> 서블릿이 다른 서블릿으로 위임하는것이 포워딩. (servlet -> jsp)
-> 기존 request 객체와 데이터가 유지된다.
[ 포워딩 함]
request.getRequestDispatcher("views/common/errorPage.jsp").forward(request, response);
[ 포워딩 받은 jsp 페이지 ]
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%@include file="menubar.jsp"%>
<br /><br />
<h1 align="center" style="color: red">${errorMsg}</h1>
</body>
</html>
[ 결과 화면 ]
포워딩시에 브라우저의 URL이 바뀌지 않는 모습과 , Request 객체를 El문법을 통해
사용할 수 있는것을 확인할 수 있다.
🔥 리다이렉트(Redirect)란 ?
리다이렉트는 서버가 클라이언트에게 새로운 URL로 이동하라고 응답하는 방식이다.
즉, 클라이언트가 다시 새로운 요청을 보내게되며 , 기존 정보는 유지되지 않는다.
-> 새로운 요청을 보내기 때문에 Request 데이터 유지 X
-> 브라우저 URL 변경됨
-> 클라이언트가 직접 새로운 페이지 요청을 함
[ 리다이렉트 요청 ]
resp.sendRedirect(req.getContextPath());
포워딩과는 다르게 리다이렉트시 브라우저 URL이 변경되었다.
-> 클라이언트에게 req.getContextPath() 경로로 재요청을 보내고 , 클라이언트는
해당 URL로 다시 요청을 하고 서블릿이 해당 페이지를 반환해서
위와같이 페이지가 뜨는 것을 볼 수 있다.
포워딩 : request, response 값 유지 & 다른 페이지로 서블릿 위임할때 사용
리다이렉트 : 브라우저에게 재요청을 보내 URL경로와 서블릿 매핑 경로가 꼬이는 현상을 방지
'Server > JSP - TomCat - Servlet' 카테고리의 다른 글
JSP 파일 업로드 해보기 (0) | 2025.02.28 |
---|---|
session.removeAttribute()와 session.invalidate() 차이 (2) | 2025.02.26 |
JSTL에 대하여 (2) | 2025.02.24 |
JSP Scope에 대하여 (0) | 2025.02.23 |
Servlet에대하여 (0) | 2025.02.21 |