首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> JSP 入門

JSP 自動刷新頁面實作

     編輯:JSP 入門

JSP 自動刷新頁面實作

即時顯示股價、比分、匯率等動態資料時,需讓頁面定時自動重新整理。JSP 透過 HttpServletResponse 的 setIntHeader() 即可輕鬆實現,無需 JavaScript。


核心方法

response.setIntHeader("Refresh", 秒數);

此方法會在 HTTP 回應標頭加入 Refresh: 5,瀏覽器收到後會在指定秒數後自動重新載入頁面。


完整範例:數位時鐘

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>自動刷新示範 - 數位時鐘</title>
</head>
<body>
  <h2>自動刷新頁面示範</h2>
  <%
    // 設定每 5 秒刷新一次
    response.setIntHeader("Refresh", 5);

    Calendar cal = Calendar.getInstance();
    int hour = cal.get(Calendar.HOUR);
    int min = cal.get(Calendar.MINUTE);
    int sec = cal.get(Calendar.SECOND);
    String ampm = (cal.get(Calendar.AM_PM) == 0) ? "AM" : "PM";
    String timeStr = String.format("%d:%02d:%02d %s", hour, min, sec, ampm);
  %>
  <p style="font-size: 2rem; font-family: monospace;">
    當前時間:<%= timeStr %>
  </p>
  <p>頁面將每 5 秒自動更新...</p>
</body>
</html>

進階應用:股票即時行情

結合 AJAX 或 WebSocket 才是現代解法,但若維護舊系統,可用此法搭配資料庫查詢:

<%
  response.setIntHeader("Refresh", 10); // 10 秒刷新
  // 查詢最新股價
  List<Stock> stocks = StockService.getLatestPrices();
%>
<table>
  <tr>&th>代碼</th>&th>名稱</th>&th>現價</th>&th>漲跌</th></tr>
  <c:forEach items="${stocks}" var="s">
    <tr>
      <td><%= s.getCode() %></td>
      <td><%= s.getName() %></td>
      <td><%= s.getPrice() %></td>
      <td class="<%= s.getChange() >= 0 ? 'up' : 'down' %>">
        <%= s.getChange() %>
      </td>
    </tr>
  </c:forEach>
</table>

注意事項與替代方案

議題說明
使用者體驗整頁重載會閃爍、捲軸歸零、表單輸入中斷
伺服器負載頻繁請求增加伺服器壓力
現代替代AJAX 輪詢、Server-Sent Events (SSE)、WebSocket、前端框架 (Vue/React) 配合 API
建議:僅適用於簡單監控頁面、內部管理工具或舊系統維護。新專案請採用前端非同步更新技術。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved