English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Atualização Automática da Página Servlet

Suponha que haja uma página da web que exiba resultados de eventos ao vivo, condições de mercado de ações ou taxas de câmbio. Para todos esses tipos de páginas, é necessário atualizar periodicamente a página da web.

O Java Servlet oferece um mecanismo que permite que a página da web seja atualizada automaticamente após um intervalo de tempo especificado.

A maneira mais simples de atualizar a página da web é usar o método da objeto de resposta setIntHeader(). A seguir está a definição deste método:

public void setIntHeader(String header, int headerValue)

Este método envia para o navegador a informação de cabeçalho "Refresh" juntamente com um valor inteiro que representa o intervalo de tempo (em segundos).

exemplo de atualização automática da página

Este exemplo demonstra como o Servlet usa setIntHeader() método para configurar Refresh informações de cabeçalho, para implementar a atualização automática da página.

package com.w3codebox.test;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class Refresh
 */
@WebServlet("/Refresh")
public class Refresh extends HttpServlet {
    private static final long serialVersionUID = 1L;
   
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 设置刷新自动加载的事件间隔为 5 秒
        response.setIntHeader("Refresh", 5);
     
        // 设置响应内容类型
        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 自动刷新页面";
        String docType = "<!DOCTYPE html> \n";
        out.println(docType +
            "<html>\n" +
            "<head><title>" + título + "</título></head>\n"+
            "<body fundo=\"#f0f0f0\">\n" +
            "<h1 alinhamento=\"center\">" + título + "</h1>\n" +
            "<p>O horário atual é:" + CT + "</p>\n");
    }
}

Agora, vamos compilar o Servlet acima e criar a seguinte entrada no arquivo web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
  <servlet>
    <servlet-nome>Refresh</servlet-nome>
    <servlet-classe>com.w3codebox.test.Refresh</servlet-classe>
  </servlet>
  <servlet-mapeamento>
    <servlet-nome>Refresh</servlet-nome>
    <url-padrão>/TomcatTest/Refresh</url-padrão>
  </servlet-mapeamento>
</web-app>

Agora, acesse http://localhost:8080/TomcatTest/Refresh para chamar este Servlet. Isso acontecerá a cada 5 Os segundos são exibidos uma vez por segundo. Execute o Servlet e aguarde o resultado:

Usar Servlet para Atualizar a Página Automaticamente

O horário atual é:9:44:50 PM