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並等待檢視結果 -