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 秒钟显示一次当前系统时间

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.