English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Автоматическая обновляемость JSP

Представьте, если бы вам нужно было транслировать результаты матчей в реальном времени, или текущий статус фондового рынка, или текущие курсы обмена валюты, как это можно реализовать? Очевидно, для реализации такой функции обновления в реальном времени вам нужно регулярно обновлять страницу.

JSP предоставляет механизм для упрощения этой задачи, позволяющий автоматически обновлять страницу по расписанию.

Самый простой способ обновить страницу - это использовать метод setIntHeader() объекта response. Сигнатура этого метода такая:

public void setIntHeader(String header, int headerValue)

Этот метод уведомляет браузер о необходимости обновления страницы через указанное время, измеряемое в секундах.

Пример программы автоматического обновления страницы

Этот пример использует метод setIntHeader() для установки заголовков обновления, имитируя цифровой час:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<html>
<head>
<title>Пример автоматического обновления</title>
</head>
<body>
<h2>Автоматическая обновляемость</h2>
<%
   // Установить обновление каждые 5 секунд
   response.setIntHeader("Refresh", 5);
   // Получить текущее время
   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;
   out.println("Текущее время: " + CT + "\n");
%>
</body>
</html>

Сохраните следующий код в файле main.jsp и откройте его. Страница будет обновляться каждые 5 секунд и получать текущее время системы. Результат выполнения будет следующим:

Автоматическая обновляемость
Текущее время: 6:5:36 PM

Вы также можете написать более сложную программу.