Servlets - Automatische Seitenaktualisierung

Stellen Sie sich eine Webseite vor, auf der Live-Spielstand, Börsenstatus oder Wechselkurs angezeigt werden. Für alle Arten von Seiten müssten Sie Ihre Webseite regelmäßig über die Schaltfläche "Aktualisieren" oder "Neu laden" mit Ihrem Browser aktualisieren.

Java Servlet erleichtert diese Aufgabe, indem es Ihnen einen Mechanismus bietet, mit dem Sie eine Webseite so erstellen können, dass sie nach einem bestimmten Intervall automatisch aktualisiert wird.

Die einfachste Möglichkeit, eine Webseite zu aktualisieren, ist die Verwendung der Methode setIntHeader()des Antwortobjekts. Es folgt die Signatur dieser Methode -

public void setIntHeader(String header, int headerValue)

Diese Methode sendet den Header "Refresh" zusammen mit einem ganzzahligen Wert, der das Zeitintervall in Sekunden angibt, an den Browser zurück.

Beispiel für die automatische Seitenaktualisierung

Dieses Beispiel zeigt, wie ein Servlet die automatische Seitenaktualisierung mithilfe von ausführt setIntHeader() Methode zum Einstellen Refresh Header.

// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
 
// Extend HttpServlet class
public class Refresh extends HttpServlet {
 
   // Method to handle GET method request.
   public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      
      // Set refresh, autoload time as 5 seconds
      response.setIntHeader("Refresh", 5);
 
      // Set response content type
      response.setContentType("text/html");
 
      // Get current time
      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 = "Auto Page Refresh using 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>Current Time is: " + CT + "</p>\n"
      );
   }
   
   // Method to handle POST method request.
   public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      
      doGet(request, response);
   }
}

Lassen Sie uns nun das obige Servlet kompilieren und die folgenden Einträge in web.xml erstellen

....
 <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>
....

Rufen Sie dieses Servlet nun unter der URL http: // localhost: 8080 / Refresh auf, die alle 5 Sekunden die aktuelle Systemzeit wie folgt anzeigt. Führen Sie einfach das Servlet aus und warten Sie, bis das Ergebnis angezeigt wird.

Auto Page Refresh using Servlet

Current Time is: 9:44:50 PM