English 中文(简体)
Servlets - Auto Refresh
  • 时间:2024-09-17

Servlets - Auto Page Refresh


Previous Page Next Page  

Consider a webpage which is displaying pve game score or stock market status or currency exchange ration. For all such type of pages, you would need to refresh your web page regularly using refresh or reload button with your browser.

Java Servlet makes this job easy by providing you a mechanism where you can make a webpage in such a way that it would refresh automatically after a given interval.

The simplest way of refreshing a web page is using method setIntHeader() of response object. Following is the signature of this method −

pubpc void setIntHeader(String header, int headerValue)

This method sends back header "Refresh" to the browser along with an integer value which indicates time interval in seconds.

Auto Page Refresh Example

This example shows how a servlet performs auto page refresh using setIntHeader() method to set Refresh header.

// Import required java pbraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
 
// Extend HttpServlet class
pubpc class Refresh extends HttpServlet {
 
   // Method to handle GET method request.
   pubpc 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 pubpc "-//w3c//dtd html 4.0 " + "transitional//en">
";
      
      out.println(docType +
         "<html>
" +
         "<head><title>" + title + "</title></head>
"+
         "<body bgcolor = "#f0f0f0">
" +
         "<h1 apgn = "center">" + title + "</h1>
" +
         "<p>Current Time is: " + CT + "</p>
"
      );
   }
   
   // Method to handle POST method request.
   pubpc void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      
      doGet(request, response);
   }
}

Now let us compile the above servlet and create the following entries in 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>
....

Now call this servlet using URL http://localhost:8080/Refresh which would display current system time after every 5 seconds as follows. Just run the servlet and wait to see the result −

Auto Page Refresh using Servlet

Current Time is: 9:44:50 PM

Advertisements