Servlet Redirection de page
Lorsqu'un document est déplacé vers un nouvel emplacement, nous devons envoyer ce nouvel emplacement au client, nous devons donc utiliser une redirection de page. Bien sûr, cela peut aussi servir à l'équilibrage de charge, ou simplement à une randomisation simple. La redirection de page peut être utilisée dans ces cas.
La façon la plus simple de rediriger une requête vers une autre page web 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 renvoie la réponse au navigateur, accompagnée du code d'état et de l'emplacement de la nouvelle page web. Vous pouvez également obtenir le même effet en utilisant les méthodes setStatus() et setHeader() ensemble :
....
String site = "http://www.example.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 :
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);
}
}
Maintenant, compilons 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>/TomcatTest/PageRedirect</url-pattern>
</servlet-mapping>
....
Appelez maintenant cette Servlet en accédant à l'URL http://localhost:8080/PageRedirect. Cela vous redirigera vers l'URL donnée http://www.example.com.
Autres extensions