Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

JSP 페이지 리디렉션이란? 개념부터 실전 예제까지

JSP 페이지 리디렉션의 기본 개념

페이지 리디렉션(Page Redirection)은 문서가 새로운 위치로 이동했을 때, 클라이언트(브라우저)를 그 새로운 위치로 자동으로 보내기 위해 사용되는 기술입니다. 리디렉션이 필요한 이유는 다양합니다. 서버 부하를 분산하기 위한 로드 밸런싱, 혹은 단순히 무작위로 접속 위치를 바꾸는 랜덤화 등이 대표적인 사례입니다.

sendRedirect() 메서드로 리디렉션 구현하기

요청을 다른 페이지로 리디렉션하는 가장 간단한 방법은 response 객체가 제공하는 sendRedirect() 메서드를 사용하는 것입니다. 이 메서드의 시그니처는 다음과 같습니다.

public void response.sendRedirect(String location)
throws IOException

이 메서드는 상태 코드(status code)와 새로운 페이지 위치 정보를 함께 담아 브라우저로 응답을 전송합니다. 브라우저는 이 응답을 받고 지정된 새 위치로 자동 이동하게 됩니다.

setStatus()와 setHeader()를 활용한 대체 방법

sendRedirect() 외에도 setStatus() 메서드와 setHeader() 메서드를 함께 사용하면 동일한 리디렉션 효과를 얻을 수 있습니다.

....
String site = "https://www.newpage.com";
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("Location", site);
....

여기서 SC_MOVED_TEMPORARILY는 HTTP 상태 코드 302(임시 이동)를 의미하며, "Location" 헤더에 이동할 URL을 설정하는 방식입니다.

JSP 페이지 리디렉션 전체 예제

다음 예제는 JSP 페이지가 다른 위치로 리디렉션을 수행하는 과정을 보여줍니다.

예제 코드

<%@ page import = "java.io.*,java.util.*" %>
<html>
   <head>
      <title>Page Redirection</title>
   </head>
   <body>
      <center>
         <h1>Page Redirection</h1>
      </center>
      <%
         // 리디렉션할 새로운 위치
         String site = new String("https://www.photofuntoos.com");
         response.setStatus(response.SC_MOVED_TEMPORARILY);
         response.setHeader("Location", site);
      %>
   </body>
</html>

실행 결과 확인

위 코드를 PageRedirect.jsp라는 파일명으로 저장한 뒤, 웹 브라우저에서 https://localhost:8080/PageRedirect.jsp 주소로 해당 JSP를 호출해 보세요. 그러면 설정된 위치인 https://www.photofuntoos.com으로 자동으로 이동하는 것을 확인할 수 있습니다.

마무리 정리

JSP에서 페이지 리디렉션은 크게 두 가지 방식으로 구현할 수 있습니다. 첫째, response 객체의 sendRedirect() 메서드를 직접 호출하는 방법이며, 둘째, setStatus()로 상태 코드를 지정하고 setHeader()로 Location 헤더를 설정하는 방법입니다. 두 방식 모두 브라우저에게 새로운 URL로 이동하라는 신호를 보내는 원리로 동작하므로, 상황에 맞게 편리한 방법을 선택하여 사용하시면 됩니다.