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

JSP 自動リフレッシュ

試想してみてください、試合のスコアをライブストリーミングしたり、株価市場のリアルタイム状態や現在の為替配給を表示したりするにはどうすればいいでしょう?明らかに、このようなリアルタイム機能を実現するには、ページを定期的にリフレッシュする必要があります。

JSPは、ページを定期的に自動リフレッシュするためのメカニズムを提供しています。

ページをリフレッシュする最も簡単な方法は、responseオブジェクトのsetIntHeader()メソッドを使用することです。このメソッドのシグネチャは以下の通りです:

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

もっと複雑なプログラムを自分で作成することもできます。