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

Servlet 网页重定向

Lorsque le document est déplacé à un nouvel emplacement et que nous devons envoyer cette nouvelle position au client, nous devons utiliser la redirection de page. Bien sûr, cela peut également être utilisé pour le load balancing ou simplement pour des raisons aléatoires, dans ces cas, la redirection de page peut être utilisée.

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 response. Voici la définition de cette méthode :

public void HttpServletResponse.sendRedirect(String location)
throws IOException

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

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

Exemple en ligne

Ce exemple montre comment un Servlet effectue une redirection de page vers un autre emplacement :

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 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://fr.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://fr.oldtoolbag.com。