공부/Java

[Java] 서블릿에서 JSP 페이지로 이동하는 방법 (sendRedirect와 RequestDispatcher)

ByeongJun 2023. 9. 20. 14:01
반응형
 

[Java] jsp와 servlet 차이점과 친절한 설명까지 요약 정리

JSP (JavaServer Pages) Java 기반의 웹 애플리케이션 개발을 위한 기술 JSP는 웹 페이지를 동적으로 생성하는데 사용되며, HTML과 Java 코드를 혼합하여 웹 애플리케이션의 사용자 인터페이스를 개발하는

3mmmeee.tistory.com

혹시 Servlet과 JSP에 대한 설명이 필요하다면

이전 글에서 정리해놨으니 참고하시길 바란다. 

 

서블릿에서 JSP 페이지로 이동하는 두 가지 방법이 있다.



[1]  'response.sendRedirect("jsp경로");'

  • 이 방법은 서블릿에서 값을 넘겨주지 않고 단순히 페이지만 이동하는 방법이다.
  • "jsp 경로"는 JSP 페이지의 주소를 나타내며, 상대 / 절대 경로 모두 사용할 수 있다.
    (일반적으로 contextPath를 기준으로 상대 경로를 지정)
  • sendRedirect는 웹 브라우저에게 다른 페이지로 이동하도록 요청하며,
    서블릿에서 처리한 데이터를 JSP로 직접 전달하지 않는다. (세션 객체와는 별개)

 

 

 

[2]  'RequestDispatcher'를 사용한 방법

  • 이 방법은 서블릿에서 값을 넘겨주고 해당 JSP 페이지에서 처리할 수 있도록 하는 방법이다.
  • 먼저 'RequestDispatcher' 객체를 생성하고 이동할 JSP 페이지 경로를 설정한다.
    (이때, 경로는 웹 애플리케이션의 루트를 기준으로 상대 / 절대 경로 사용 가능)
  • 'request.setAttribute("key", value);'를 사용해 서블릿에서 데이터를 설정하고
    forward() 메서드를 통해 설정한 경로로 이동한다.
  • JSP 페이지에서는 ${key}와 같은 표현식을 사용해 데이터를 가져와 처리할 수 있다. 
  • 이 방법은 request와 response 객체를 공유하므로
    서블릿에서 처리한 데이터를 JSP 페이지에서 활용할 수 있다.
// 서블릿에서 JSP 페이지로 데이터 전달
request.setAttribute("message", "안녕하세요!");

// RequestDispatcher를 사용하여 JSP 페이지로 이동
RequestDispatcher view = request.getRequestDispatcher("/yourJSPPage.jsp");
view.forward(request, response);
반응형