English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Supposons qu'il y ait une page web qui affiche les résultats d'un match en direct ou l'état du marché boursier ou le taux de change des devises. Pour tous ces types de pages, il est nécessaire de rafraîchir régulièrement la page web.
Java Servlet fournit un mécanisme qui permet à une page web de se rafraîchir automatiquement à intervalles réguliers.
Le moyen le plus simple de rafraîchir une page web est d'utiliser la méthode de l'objet de réponse setIntHeader(). Voici la définition de cette méthode :
public void setIntHeader(String header, int headerValue)
Cette méthode envoie à l'explorateur de navigateur les informations d'en-tête "Refresh" accompagnées d'une valeur entière représentant l'intervalle de temps (en secondes).
Ce exemple montre comment Servlet utilise setIntHeader() La méthode pour définir Refresh Les informations d'en-tête, afin de réaliser le rafraîchissement automatique de la page.
package com.w;3codebox.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; /** * Servlet implementation class Refresh */ @WebServlet("/Refresh") public class Refresh extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置刷新自动加载的事件间隔为 5 秒 response.setIntHeader("Refresh", 5); // 设置响应内容类型 response.setContentType("text/html;charset=UTF-8"); // 获取当前的时间 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/Refresh 来调用这个 Servlet。这将会每隔 5 秒钟显示一次当前系统时间。运行该 Servlet,并等待查看结果:
使用 Servlet 自动刷新页面当前时间是:9:44:50 PM |