Servlet 3.1 自动刷新页面 ( setIntHeader )
Java Servlet 3.1 response.setIntHeader 方法可以设置数值响应头
日常的开发中,偶尔会碰到某个页面每隔一定时间就要刷新一次,比如显示现场比赛成绩或股票市场状况或货币兑换率的页面
HTML 中的 meta 元标签可以设置网页自动刷新
<meta http-equiv="refresh" content="1;">
Java Servlet 的 response 对象中的 setIntHeader 方法可以设置 meta 标签
public void setIntHeader(String header, int headerValue)
比如我们要设置网页每隔 1s 刷新一次,对应的 HTML meta 标签是
<meta http-equiv="refresh" content="1;">
对应的 Java Servlet 方法是
response.setIntHeader("Refresh", 1);
范例
下面的范例演示了 Servlet 如何使用 setIntHeader() 方法来设置 Refresh 头信息,从而实现自动刷新页面
cn/twle/demo/RefreshServlet.java
// author: 简单教程(www.twle.cn) // Copyright © 2015-2065 www.twle.cn. All rights reserved. package cn.twle.demo; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Calendar; import java.util.GregorianCalendar; @WebServlet(name = "RefreshServlet", urlPatterns = {"auto_refresh"}, loadOnStartup = 1) public class RefreshServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置刷新自动加载的事件间隔为 1 秒 response.setIntHeader("Refresh", 1); // 设置响应内容类型 response.setContentType("text/html;charset=UTF-8"); // 获取当前的时间 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; PrintWriter out = response.getWriter(); String title = "使用 Servlet 自动刷新页面 | 简单教程(www.twle.cn)"; String docType = "<!DOCTYPE html> \n"; out.println(docType + "<title>" + title + "</title>"+ "<body bgcolor=\"#f0f0f0\">" + "<p>" + title + "</p>" + "<p>当前时间是:" + CT + "</p>"); } }
在浏览器上输入 http://localhost:8080/servlet/auto_refresh 来访问网页
这个网页会每隔 1 秒钟显示一次当前系统时间