极客学院团队出品 · 更新于 2018-11-28 11:00:43

JSP - 自动刷新

细想一个显示在线比赛分数、股市状态或当前交易额的网页。对于所有这种类型的网页,你需要通过浏览器中的更新或者重新载入按钮定期的刷新网页。

通过提供一个在给定的间距后自动刷新网页的机制,可以使 JSP 更加容易运行。

刷新网页最简单的方法就是使用 request 对象的 setIntHeader() 方法。下面是这个方法的符号描述:

public void setIntHeader(String header, int headerValue)

此方法将标题“刷新”以及以秒为单位的时间间隔的整数值返回给浏览器。

自动页面刷新例子

下面的例子使用 setIntHeader() 方法设置 Refresh 标头来模拟数字计时器:

<%@ page import="java.io.*,java.util.*" %>
<html>
<head>
<title>Auto Refresh Header Example</title>
</head>
<body>
<center>
<h2>Auto Refresh Header Example</h2>
<%
   // Set refresh, autoload time as 5 seconds
   response.setIntHeader("Refresh", 5);
   // 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("Crrent Time: " + CT + "\n");
%>
</center>
</body>
</html>

现在将上面的代码放在 main.jsp 中,并且访问它。它将在之后每隔 5 s 显示当前系统时间。只运行此 JSP 页面,等待一会可以看到如下结果:

Auto Refresh Header Example

Current Time is: 9:44:50 PM

为了变得与其他方法更加合适,你可以用同样的形式尝试更多上面列出的方法。