Muat semula automatik JSP


Bayangkan jika anda ingin menyiarkan secara langsung skor permainan, atau status masa nyata pasaran saham, atau catuan pertukaran asing semasa, bagaimana untuk mencapainya? Jelas sekali, untuk mencapai fungsi masa nyata ini, anda perlu memuat semula halaman dengan kerap.

JSP menyediakan mekanisme untuk menjadikan kerja ini mudah, yang boleh memuat semula halaman secara automatik dengan kerap.

Cara paling mudah untuk memuat semula halaman ialah menggunakan kaedah setIntHeader() bagi objek respons. Tandatangan kaedah ini adalah seperti berikut:

public void setIntHeader(String header, int headerValue)

Kaedah ini memberitahu penyemak imbas untuk memuat semula selepas masa tertentu, dalam beberapa saat.


Contoh program muat semula automatik halaman

Contoh ini menggunakan kaedah setIntHeader() untuk menetapkan pengepala muat semula dan mensimulasikan jam digital:

<%@ 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>

Simpan kod di atas dalam fail main.jsp dan aksesnya . Ia akan memuat semula halaman setiap 5 saat dan mendapatkan masa sistem semasa. Keputusan berjalan adalah seperti berikut:

自动刷新实

当前时间为: 6:5:36 PM

Anda juga boleh menulis program yang lebih kompleks sendiri.