在本章中,我们将讨论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并等待查看结果 -