redirect

"> JSP - Hello World

redirect

"> JSP - Hello World

redirect

">
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <title>JSP - Hello World</title>
</head>
<body>
<h1>redirect</h1>
<ul>
    <li><a href="othersite">다른 웹사이트로 redirect 테스트</a></li>
    <li><a href="otherservlet">다른 서블릿으로 redirect테스트</a></li>
</ul>
</body>
</html>
@WebServlet("/othersite")
public class OthersiteRedirectServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("get 요청을 받으면 naver사이트로 redirect");
        resp.sendRedirect("<https://www.naver.com>");
    }
}
@WebServlet("/otherservlet")
public class OtherServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setAttribute("test","abc");
        resp.sendRedirect("redirect?test=abc");
    }
}
@WebServlet("/redirect")
public class RedirectServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("리다이렉트 이후 request의 attribute 확인: " + req.getAttribute("test"));
        System.out.println("리다이렉트 이후 request의 parameter 확인: " + req.getParameter("test"));
    }
}

스크린샷 2025-09-03 오전 9.22.03.png

→ redirect는 브라우저에 응답과 요청을 하고나면 해당 정보가 담겨져 있던 서블릿 객체가 사라진다.

해결방법 2가지

스크린샷 2025-09-03 오전 9.22.55.png

  1. 재료를 쿼리스트링으로 url요청(get방식) → redirect(get요청)
  2. 재료를 서버나 웹브라우저가 가지는 방법

(로컬스토리지 세션스토리지 캐싱 → 웹브라우저)

스크린샷 2025-09-03 오전 9.24.37.png

→ 서버에 저장 http session

→ 클라이언트에 저장 session stroage(cookie)

스크린샷 2025-09-03 오전 9.33.51.png