Redirection de page Web de servlet


Lorsque le document est déplacé vers un nouvel emplacement et que nous devons envoyer ce nouvel emplacement au client, nous devons utiliser la redirection de page Web. Bien sûr, cela peut aussi être pour un équilibrage de charge, ou simplement pour un simple hasard. Dans ces cas, la redirection de page Web peut être utilisée.

Le moyen le plus simple de rediriger une requête vers une autre page Web est d'utiliser la méthode sendRedirect() de l'objet de réponse. Voici la définition de cette méthode : La manière la plus simple de rediriger une requête vers une autre page est d'utiliser la méthode sendRedirect() de l'objet réponse. Voici la définition de cette méthode :

public void HttpServletResponse.sendRedirect(String location)
throws IOException

Cette méthode renvoie la réponse au navigateur accompagnée d'un code d'état et d'un nouvel emplacement de page. Vous pouvez également obtenir le même effet en utilisant les méthodes setStatus() et setHeader() ensemble :

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

Exemple

Cet exemple montre comment une servlet redirige une page vers un autre emplacement 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);    
    }
}

Compilons maintenant le servlet ci-dessus et créons l'entrée suivante dans le fichier 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>
....

Maintenant, en accédant à l'URL http://localhost:8080/PageRedirect pour appeler cette servlet. Cela vous mènera à l'URL indiquée http://www.w3cschool.cc.