Servlet menyegarkan halaman secara automatik


Andaikan terdapat halaman web yang memaparkan keputusan permainan langsung atau keadaan pasaran saham atau kadar pertukaran mata wang. Untuk semua jenis halaman ini, anda perlu memuat semula halaman web dengan kerap.

Java Servlet menyediakan mekanisme supaya halaman web akan dimuat semula secara automatik pada selang masa tertentu.

Cara paling mudah untuk memuat semula halaman web ialah menggunakan kaedah objek respons setIntHeader(). Berikut ialah definisi kaedah ini:

public void setIntHeader(String header, int headerValue)

Kaedah ini menghantar pengepala "Refresh" kembali ke penyemak imbas bersama-sama dengan nilai integer yang mewakili selang masa dalam beberapa saat.

Contoh halaman muat semula automatik

Contoh ini menunjukkan cara Servlet menggunakan kaedah setIntHeader() untuk menetapkan maklumat pengepala Muat Semula kepada capai Muat semula halaman secara automatik.

// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
 
// 扩展 HttpServlet 类
public class Refresh extends HttpServlet {
 
  // 处理 GET 方法请求的方法
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 设置刷新自动加载的事件间隔为 5 秒
      response.setIntHeader("Refresh", 5);
 
      // 设置响应内容类型
      response.setContentType("text/html");
 
      // 获取当前的时间
      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 public \"-//w3c//dtd html 4.0 " +
      "transitional//en\">\n";
      out.println(docType +
        "<html>\n" +
        "<head><title>" + title + "</title></head>\n"+
        "<body bgcolor=\"#f0f0f0\">\n" +
        "<h1 align=\"center\">" + title + "</h1>\n" +
        "<p>当前时间是:" + CT + "</p>\n");
  }
  // 处理 POST 方法请求的方法
  public void doPost(HttpServletRequest request,
                     HttpServletResponse response)
      throws ServletException, IOException {
     doGet(request, response);
  }
}

Sekarang mari kita kumpulkan Servlet di atas dan buat entri berikut dalam fail web.xml:

....
 <servlet>
     <servlet-name>Refresh</servlet-name>
     <servlet-class>Refresh</servlet-class>
 </servlet>
 
 <servlet-mapping>
     <servlet-name>Refresh</servlet-name>
     <url-pattern>/Refresh</url-pattern>
 </servlet-mapping>
....

Sekarang panggil ini dengan melawati URL http://localhost:8080/Refresh Servlets . Ini akan memaparkan masa sistem semasa setiap 5 saat. Jalankan Servlet dan tunggu untuk melihat keputusan:

< tbody>

Gunakan Servlet untuk memuat semula halaman secara automatik

使用 Servlet 自动刷新页面

当前时间是:9:44:50 PM

Masa semasa ialah: 9:44:50 PM
<🎜>