English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Предположим, что у вас есть веб-страница, которая показывает результаты живых спортивных событий или состояние фондового рынка или курс обмена валют. Для всех этих типов страниц вам нужно периодически обновлять страницу.
Java Servlet предоставляет механизм, который позволяет веб-странице автоматически обновляться через заданный интервал времени.
Самый простой способ обновить веб-страницу - это использовать метод объекта ответа setIntHeader()Вот определение этого метода:
public void setIntHeader(String header, int headerValue)
Этот метод отправляет обратно браузеру заголовок информации "Refresh" вместе с целым числом, представляющим интервал времени (в секундах).
Этот пример демонстрирует, как Servlet использует setIntHeader() метод для установки Refresh заголовки, чтобы实现页面的自动刷新。
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; /** * 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>
Теперь вызовите этот Servlet, перейдя по адресу http://localhost:8080/TomcatTest/Refresh. Это будет отображать текущее время системы каждые 5 секунд. Запустите Servlet и подождите, чтобы увидеть результаты:
Использование Servlet для автоматического обновления страницыТекущее время: 9:44:50 вечера |