서블릿 웹페이지 리디렉션
문서가 새 위치로 이동되고 이 새 위치를 클라이언트에 보내야 하는 경우 웹 페이지 리디렉션을 사용해야 합니다. 물론 로드 밸런싱을 위한 것일 수도 있고 단순한 임의성을 위한 것일 수도 있습니다. 이러한 경우 웹 페이지 리디렉션이 사용될 수 있습니다.
요청을 다른 웹페이지로 리디렉션하는 가장 간단한 방법은 응답 개체의 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로 이동하게 됩니다.