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

Servlet-Seitenaktualisierung

Angenommen, es gibt eine Webseite, die Liveergebnisse von Sportveranstaltungen, den Zustand des Aktienmarktes oder den Wechselkurs von Währungen anzeigt. Für alle diese Arten von Seiten muss die Webseite regelmäßig aktualisiert werden.

Java Servlet bietet ein Mechanismus, der es ermöglicht, dass Webseiten nach einer bestimmten Zeitdauer automatisch aktualisiert werden.

Die einfachste Möglichkeit, eine Webseite zu aktualisieren, ist die Verwendung der Methoden des Antwortobjekts. setIntHeader(). Hier ist die Definition dieses Verfahrens:

public void setIntHeader(String header, int headerValue)

Diese Methode sendet die Kopfinformation "Refresh" zusammen mit einem Wert, der die Zeitdauer angibt (in Sekunden) zurück an den Browser.

Beispiel zur automatischen Aktualisierung der Seite

Dieser Beispiel zeigt, wie Servlet die automatische Aktualisierung der Seite verwendet. setIntHeader() Methode, um zu konfigurieren Refresh Kopfinformationen, um die automatische Aktualisierung der Seite zu erreichen.

package com.w;3codebox.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 实现类 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>Die aktuelle Zeit ist:" + CT + "</p>\n");
    }
}

Lassen Sie uns nun den obigen Servlet kompilieren und den folgenden Eintrag in der Datei web.xml erstellen:

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

Besuchen Sie jetzt http://localhost:8080/TomcatTest/Aktualisieren Sie, um diesen Servlet aufzurufen. Dies wird alle 5 Sekunden wird die aktuelle Systemzeit angezeigt. Führen Sie das Servlet aus und warten Sie auf die Ergebnisse:

Verwenden Sie Servlet, um die Seite automatisch zu aktualisieren

Die aktuelle Zeit ist:9:44:50 PM