Servlets - Actualización automática de página
Considere una página web que muestre la puntuación del juego en vivo o el estado de la bolsa o la ración de cambio de moneda. Para todos estos tipos de páginas, necesitaría actualizar su página web regularmente usando el botón de actualización o recarga de su navegador.
Java Servlet facilita este trabajo al proporcionarle un mecanismo en el que puede crear una página web de tal manera que se actualice automáticamente después de un intervalo determinado.
La forma más sencilla de actualizar una página web es mediante el método setIntHeader()del objeto de respuesta. A continuación se muestra la firma de este método:
public void setIntHeader(String header, int headerValue)
Este método devuelve el encabezado "Refresh" al navegador junto con un valor entero que indica el intervalo de tiempo en segundos.
Ejemplo de actualización automática de página
Este ejemplo muestra cómo un servlet realiza la actualización automática de la página usando setIntHeader() método para configurar Refresh encabezamiento.
// 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);
}
}
Ahora compilemos el servlet anterior y creemos las siguientes entradas en 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>
....
Ahora llame a este servlet usando la URL http: // localhost: 8080 / Refresh que mostraría la hora actual del sistema después de cada 5 segundos de la siguiente manera. Simplemente ejecute el servlet y espere a ver el resultado:
Auto Page Refresh using Servlet
Current Time is: 9:44:50 PM