Servlet - Reindirizzamento della pagina

Il reindirizzamento della pagina è una tecnica in cui il client viene inviato a una nuova posizione diversa da quella richiesta. Il reindirizzamento della pagina viene generalmente utilizzato quando un documento si sposta in una nuova posizione o può essere dovuto al bilanciamento del carico.

Il modo più semplice per reindirizzare una richiesta a un'altra pagina è utilizzare method sendRedirect()dell'oggetto risposta. Di seguito è riportata la firma di questo metodo:

public void HttpServletResponse.sendRedirect(String location) 
throws IOException

Questo metodo restituisce la risposta al browser insieme al codice di stato e alla nuova posizione della pagina. Puoi anche usare i metodi setStatus () e setHeader () insieme per ottenere lo stesso risultato -

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

Esempio

Questo esempio mostra come un servlet esegue il reindirizzamento della pagina in un'altra posizione -

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 {

      // Set response content type
      response.setContentType("text/html");

      // New location to be redirected
      String site = new String("http://www.photofuntoos.com");

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

Ora compiliamo il servlet sopra e creiamo le seguenti voci in 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>
....

Ora chiama questo servlet utilizzando l'URL http: // localhost: 8080 / PageRedirect. Questo ti reindirizzerebbe all'URL http://www.photofuntoos.com.