English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Servlet 網頁重定向

Quando un documento si sposta a una nuova posizione e dobbiamo inviare questa nuova posizione al client, dobbiamo utilizzare la reindirizzamento della pagina web. Certo, potrebbe essere per bilanciare il carico, o semplicemente per un caso casuale, in tutti questi casi può essere utilizzato il reindirizzamento della pagina web.

Il modo più semplice per reindirizzare una richiesta a un altro sito web è utilizzare il metodo sendRedirect() dell'oggetto response. Ecco la definizione di questo metodo:

public void HttpServletResponse.sendRedirect(String location)
lancia IOException

Questo metodo invia la risposta e l'indirizzo della nuova pagina al browser insieme al codice di stato. Puoi ottenere lo stesso effetto utilizzando insieme i metodi setStatus() e setHeader():

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

Esempio online

Questo esempio mostra come un Servlet può effettuare una reindirizzamento della pagina a un altro indirizzo:

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 implementazione classe PageRedirect
 */
@WebServlet("/PageRedirect")
public class PageRedirect extends HttpServlet{
    
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            lancia ServletException, IOException
  {
      // 設置響應內容類型
      response.setContentType("text/html;charset=UTF-8");
      // 要重定向的新位置
      String site = new String("http://it.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://it.oldtoolbag.com。