Servlet Перенаправление страницы

Когда документ перемещается в новое место, нам нужно отправить это новое место клиенту, поэтому нужно использовать перенаправление страницы. Конечно, это также может быть для балансировки нагрузки или просто для случайного выбора. Перенаправление страницы может использоваться в этих случаях.

Самый простой способ перенаправить запрос на другую веб-страницу — использовать метод sendRedirect() объекта response. Ниже приведено определение этого метода:

public void HttpServletResponse.sendRedirect(String location)
throws IOException 

Этот метод отправляет ответ вместе с кодом состояния и местоположением новой веб-страницы обратно в браузер. Того же эффекта можно также добиться, используя методы setStatus() и setHeader() вместе:

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

Пример

Этот пример показывает, как Servlet перенаправляет страницу на другое местоположение:

package com.example.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");

      // 要重定向的新位置
      String site = new String("http://www.example.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>
....

Теперь вызовите этот Servlet, обратившись по URL http://localhost:8080/PageRedirect. Это перенаправит вас на указанный URL http://www.example.com.

Другие расширения