English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Supongamos que hay una página web que muestra resultados de eventos en vivo o condiciones del mercado de valores o tasas de cambio de moneda. Para todos estos tipos de páginas, es necesario refrescar la página web regularmente.
Java Servlet proporciona un mecanismo que permite que una página web se refresque automáticamente a intervalos específicos.
La forma más sencilla de refrescar una página web es utilizando los métodos del objeto de respuesta setIntHeader(). A continuación, se muestra la definición de este método:
public void setIntHeader(String header, int headerValue)
Este método envía al navegador la información de encabezado "Refresh" junto con un valor entero que representa el intervalo de tiempo (en segundos).
Este ejemplo demuestra cómo el Servlet utiliza setIntHeader() método para configurar Refresh cabeceras de información, lo que permite refrescar automáticamente la página.
package com.w3codebox.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; /** * Clase de implementación de 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 { // Establecer el intervalo de tiempo para la recarga automática 5 segundos response.setIntHeader("Refresh", 5); // Establecer el tipo de contenido de la respuesta response.setContentType("text/html;charset=UTF-8"); // Obtener la hora actual 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>当前时间是:" + CT + "</p>\n"); } }
现在让我们来编译上面的Servlet,并在web.xml文件中创建以下条目:
<?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>
现在通过访问http://localhost:8080/TomcatTest/刷新来调用这个Servlet。这将会每隔 5 每秒显示一次当前系统时间。运行该Servlet,并等待查看结果:
使用Servlet自动刷新页面当前时间是:9:44:50 PM |