JSP自動刷新

在本章中,我們將討論JSP中的如何實現自動刷新。典型的自動刷新示例是:顯示現場比賽得分或股票市場狀況或貨幣兌換配給的網頁。對於所有這些類型的頁面,需要使用瀏覽器刷新或重新加載按鈕定期刷新網頁以更新(獲取)最新的數據信息。

JSP可以爲您提供一種機制,使我們能夠指定一個時間間隔自動刷新網頁。

刷新網頁的最簡單的方法是使用響應對象的setIntHeader()方法。以下是這種方法的簽名 -

public void setIntHeader(String header, int headerValue)

此方法將標題「刷新」發送回瀏覽器以及指定時間間隔(以秒爲單位)的整數值。

自動頁面刷新示例

打開Eclipse,創建一個動態Web項目:AutoRefresh,其項目中的JSP文件及代碼如下所示-

文件:index.jsp -

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>自動涮新示例</title>
</head>
<body>
    <div style="margin: auto; width: 80%">
        <h2>JSP自動涮新示例</h2>
        <%
            // Set refresh, autoload time as 2 seconds
            response.setIntHeader("Refresh", 2);

            // Get current time
            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");
        %>
    </div>
</body>
</html>

在上面的例子中,將使用setIntHeader()方法來設置刷新響應頭。這將有助於模擬數字時鐘。

編寫完成上面代碼,部署並打開瀏覽器嘗試訪問URL: http://localhost:8080/AutoRefresh/。 這將在每2秒鐘後顯示當前系統時間,如下所示。 只需運行JSP並等待查看結果 -

JSP自動刷新