Le servlet actualise automatiquement la page


Supposons qu'il existe une page Web qui affiche les résultats du jeu en direct, les conditions du marché boursier ou les taux de change. Pour tous ces types de pages, vous devez actualiser régulièrement la page Web.

Java Servlet fournit un mécanisme permettant à la page Web de s'actualiser automatiquement à un intervalle de temps donné.

Le moyen le plus simple d'actualiser une page Web est d'utiliser la méthode de l'objet de réponse setIntHeader(). Voici la définition de cette méthode :

public void setIntHeader(String header, int headerValue)

Cette méthode renvoie l'en-tête "Refresh" au navigateur accompagné d'une valeur entière représentant l'intervalle de temps en secondes.

Exemple de page d'actualisation automatique

Cet exemple montre comment Servlet utilise la méthode setIntHeader() pour définir les informations d'en-tête Refresh sur réaliser Actualiser automatiquement la page.

// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
 
// 扩展 HttpServlet 类
public class Refresh extends HttpServlet {
 
  // 处理 GET 方法请求的方法
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 设置刷新自动加载的事件间隔为 5 秒
      response.setIntHeader("Refresh", 5);
 
      // 设置响应内容类型
      response.setContentType("text/html");
 
      // 获取当前的时间
      Calendar calendar = new GregorianCalendar();
      String am_pm;
      int hour = calendar.get(Calendar.HOUR);
      int minute = calendar.get(Calendar.MINUTE);
      int second = calendar.get(Calendar.SECOND);
      if(calendar.get(Calendar.AM_PM) == 0)
        am_pm = "AM";
      else
        am_pm = "PM";
 
      String CT = hour+":"+ minute +":"+ second +" "+ am_pm;
    
      PrintWriter out = response.getWriter();
      String title = "使用 Servlet 自动刷新页面";
      String docType =
      "<!doctype html public \"-//w3c//dtd html 4.0 " +
      "transitional//en\">\n";
      out.println(docType +
        "<html>\n" +
        "<head><title>" + title + "</title></head>\n"+
        "<body bgcolor=\"#f0f0f0\">\n" +
        "<h1 align=\"center\">" + title + "</h1>\n" +
        "<p>当前时间是:" + CT + "</p>\n");
  }
  // 处理 POST 方法请求的方法
  public void doPost(HttpServletRequest request,
                     HttpServletResponse response)
      throws ServletException, IOException {
     doGet(request, response);
  }
}

Compilons maintenant le servlet ci-dessus et créons l'entrée suivante dans le fichier web.xml :

....
 <servlet>
     <servlet-name>Refresh</servlet-name>
     <servlet-class>Refresh</servlet-class>
 </servlet>
 
 <servlet-mapping>
     <servlet-name>Refresh</servlet-name>
     <url-pattern>/Refresh</url-pattern>
 </servlet-mapping>
....

Appelons-le maintenant en visitant l'URL http://localhost:8080/Refresh Servlets . Cela affichera l’heure actuelle du système toutes les 5 secondes. Exécutez le servlet et attendez de voir les résultats :

< tbody>

Utilisez Servlet pour actualiser automatiquement la page

使用 Servlet 自动刷新页面

当前时间是:9:44:50 PM

L'heure actuelle est : 9:44:50 MP
<🎜>