서블릿 웹페이지 리디렉션


문서가 새 위치로 이동되고 이 새 위치를 클라이언트에 보내야 하는 경우 웹 페이지 리디렉션을 사용해야 합니다. 물론 로드 밸런싱을 위한 것일 수도 있고 단순한 임의성을 위한 것일 수도 있습니다. 이러한 경우 웹 페이지 리디렉션이 사용될 수 있습니다.

요청을 다른 웹페이지로 리디렉션하는 가장 간단한 방법은 응답 개체의 sendRedirect() 메서드를 사용하는 것입니다. 이 메소드의 정의는 다음과 같습니다. 요청을 다른 페이지로 리디렉션하는 가장 간단한 방법은 응답 객체의 sendRedirect() 메소드를 사용하는 것입니다. 이 메소드의 정의는 다음과 같습니다.

public void HttpServletResponse.sendRedirect(String location)
throws IOException

이 메소드는 상태 코드 및 새 페이지 위치와 함께 응답을 브라우저로 다시 보냅니다. setStatus() 및 setHeader() 메소드를 함께 사용하여 동일한 효과를 얻을 수도 있습니다.

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

이 예는 서블릿이 페이지를 다른 A 위치로 리디렉션하는 방법을 보여줍니다. :

import java.io.*;
import java.sql.Date;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class PageRedirect extends HttpServlet{
    
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 设置响应内容类型
      response.setContentType("text/html");

      // 要重定向的新位置
      String site = new String("http://www.w3cschool.cc");

      response.setStatus(response.SC_MOVED_TEMPORARILY);
      response.setHeader("Location", site);    
    }
}

이제 위의 서블릿을 컴파일하고 web.xml 파일에 다음 항목을 생성해 보겠습니다.

....
 <servlet>
     <servlet-name>PageRedirect</servlet-name>
     <servlet-class>PageRedirect</servlet-class>
 </servlet>

 <servlet-mapping>
     <servlet-name>PageRedirect</servlet-name>
     <url-pattern>/PageRedirect</url-pattern>
 </servlet-mapping>
....

이제 URL http://localhost:8080/PageRedirect에 액세스하여 호출합니다. 이 서블릿. 그러면 주어진 URL http://www.w3cschool.cc로 이동하게 됩니다.