Servlet Page de rafraîchissement automatique

Supposons qu'il existe une page web qui affiche les scores de jeux en direct, les conditions du marché boursier ou les taux de change. Pour tous ces types de pages, vous devez rafraîchir la page web périodiquement.

Java Servlet fournit un mécanisme qui permet à la page web de se rafraîchir automatiquement à un intervalle de temps donné.

La façon la plus simple de rafraîchir une page web est d'utiliser la méthode de l'objet responsesetIntHeader(). Voici la définition de cette méthode :

public void setIntHeader(String header, int headerValue)

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

Exemple de page de rafraîchissement automatique

Cet exemple montre comment le Servlet utilisesetIntHeader()la méthode pour définirRefreshles informations d'en-tête, ce qui permet d'actualiser automatiquement la page.

package com.example.test;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Calendar;

import java.util.GregorianCalendar;

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 Refresh
 */
@WebServlet("/Refresh")
public class Refresh extends HttpServlet {
    private static final long serialVersionUID = 1L;
   
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // 设置刷新自动加载的事件间隔为 5 秒
        response.setIntHeader("Refresh", 5);
     
        // 设置响应内容类型
        response.setContentType("text/html;charset=UTF-8");
     
        // 获取当前的时间
        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> \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");
    }

}

Maintenant, compilons le Servlet ci-dessus et créons l'entrée suivante dans le fichier web.xml :

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
  <servlet>
    <servlet-name>Refresh</servlet-name>
    <servlet-class>com.example.test.Refresh</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Refresh</servlet-name>
    <url-pattern>/TomcatTest/Refresh</url-pattern>
  </servlet-mapping>
</web-app>

Maintenant, invoquez ce Servlet en visitant http://localhost:8080/TomcatTest/Refresh. Cela affichera l'heure actuelle du système toutes les 5 secondes. Exécutez le Servlet et attendez de voir les résultats :

Utilisation d'un Servlet pour actualiser automatiquement une page

L'heure actuelle est : 9:44:50 PM

Autres extensions