JSP(JavaServer Pages) 개발에서 페이지를 다른 주소로 이동시켜야 할 때 유용하게 사용되는 것이 바로 JSTL 코어 태그 중 하나인 <c:redirect>입니다. 이 태그는 사용자의 브라우저를 지정된 다른 URL로 자동으로 리다이렉트하며, 자동 URL 재작성(URL rewriting) 기능을 지원해 세션 유지가 필요한 환경에서도 안정적으로 동작합니다.
또한 <c:redirect>는 웹 애플리케이션 내부의 컨텍스트 상대 경로(context-relative URL)를 지원하고, <c:param> 태그와 함께 사용하면 리다이렉트 대상 페이지에 파라미터를 전달할 수 있다는 장점이 있습니다.
<c:redirect> 태그의 주요 속성
<c:redirect> 태그에서 사용할 수 있는 속성은 다음과 같습니다.
| 속성 | 설명 | 필수 여부 | 기본값 |
|---|---|---|---|
| url | 사용자의 브라우저를 리다이렉트할 대상 URL | 필수 | 없음 |
| context | 슬래시(/)로 시작하는 로컬 웹 애플리케이션의 이름 | 선택 | 현재 애플리케이션 |
기본 사용 예제
아래는 <c:redirect> 태그를 활용해 외부 사이트로 이동하는 가장 간단한 예제입니다.
<%@ taglib uri = "https://java.sun.com/jsp/jstl/core" prefix = "c" %>
<html>
<head>
<title><c:redirect> 태그 예제</title>
</head>
<body>
<c:redirect url = "https://www.photofuntoos.com"/>
</body>
</html>
위 코드를 실행하면 해당 JSP 페이지에 접근한 사용자의 브라우저가 자동으로 https://www.photofuntoos.com 주소로 이동합니다. 직접 실행해서 결과를 확인해 보세요.
파라미터를 함께 전달하는 방법
리다이렉트 대상 페이지에 값을 넘겨야 한다면 <c:param> 태그를 하위 요소로 추가하면 됩니다.
<c:redirect url = "/login.jsp"> <c:param name = "userId" value = "guest"/> </c:redirect>
이 경우 브라우저는 /login.jsp?userId=guest처럼 파라미터가 포함된 URL로 이동하게 됩니다. 이처럼 <c:redirect> 태그를 활용하면 복잡한 스크립틀릿 코드 없이도 깔끔하게 페이지 이동 로직을 구현할 수 있습니다.