Servlets - Actualisation automatique de la page

Considérez une page Web qui affiche le score du match en direct ou l'état de la bourse ou la ration de change. Pour tous ces types de pages, vous devez actualiser régulièrement votre page Web en utilisant le bouton d'actualisation ou de rechargement de votre navigateur.

Java Servlet facilite ce travail en vous fournissant un mécanisme où vous pouvez créer une page Web de manière à ce qu'elle s'actualise automatiquement après un intervalle donné.

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

public void setIntHeader(String header, int headerValue)

Cette méthode renvoie l'en-tête "Refresh" au navigateur avec une valeur entière qui indique l'intervalle de temps en secondes.

Exemple d'actualisation automatique de la page

Cet exemple montre comment un servlet effectue l'actualisation automatique de la page setIntHeader() méthode à définir Refresh entête.

// 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);
   }
}

Maintenant, compilons le servlet ci-dessus et créons les entrées suivantes dans 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>
....

Appelez maintenant ce servlet en utilisant l'URL http: // localhost: 8080 / Refresh qui afficherait l'heure actuelle du système toutes les 5 secondes comme suit. Exécutez simplement le servlet et attendez de voir le résultat -

Auto Page Refresh using Servlet

Current Time is: 9:44:50 PM