English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
문서가 새 위치로 이동하면, 이 새 위치를 클라이언트에게 보내야 할 때, 웹 페이지 리디렉션을 사용해야 합니다. 물론, 로드 밸런싱이나 간단한 랜덤으로도 사용될 수 있습니다. 이러한 경우들도 모두 가능합니다.
다른 웹 페이지로 요청을 리디렉션하는 가장 간단한 방법은 response 객체의 sendRedirect() 메서드를 사용하는 것입니다. 이 메서드의 정의는 다음과 같습니다:
public void HttpServletResponse.sendRedirect(String location) throws IOException
이 메서드는 응답과 상태 코드, 새 웹 페이지 위치를 브라우저로 보냅니다. setStatus()와 setHeader() 메서드를 함께 사용하여 동일한 효과를 얻을 수 있습니다:
.... String site = "http://ko.oldtoolbag.com"; response.setStatus(response.SC_MOVED_TEMPORARILY); response.setHeader("Location", site); ....
이 예제에서 Servlet이 다른 위치로 페이지 리디렉션을 어떻게 수행하는지 보여줍니다:
package com.w3codebox.test; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class PageRedirect */ @WebServlet("/PageRedirect) public class PageRedirect extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 응답 내용 유형 설정 response.setContentType("text/html;charset=UTF-8"); // redirect할 새 위치 String site = new String("http://ko.oldtoolbag.com"); response.setStatus(response.SC_MOVED_TEMPORARILY); response.setHeader("Location", site); } }
지금 위의 Servlet을 컴파일하고 web.xml 파일에 다음 항목을 생성하겠습니다:
.... <servlet> <servlet-name>PageRedirect</servlet-name> <servlet-class>PageRedirect</servlet-class> </servlet> <servlet-mapping> <servlet-name>PageRedirect</servlet-name> <url-pattern>/TomcatTest/PageRedirect</url-pattern> </servlet-mapping> ....
지금 URL http://localhost:8080/PageRedirect 이 Servlet을 호출합니다. 이는 주어진 URL http://ko.oldtoolbag.com.