English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
افترض أن لديك صفحة تحتوي على نتائج المباراة الحية أو حالة السوق أو معدل التبادل للعملات. بالنسبة لجميع هذه الأنواع من الصفحات، تحتاج إلى تحديث الصفحة بانتظام.
يقدم Servlet ميكانيزمًا يجعل الصفحة تتحديث نفسها تلقائيًا بعد فترة زمنية معينة.
أسهل طريقة لتحديث الصفحة هي استخدام طريقة الردود. setIntHeader()هذا هو تعريف هذا الطريقة:
public void setIntHeader(String header, int headerValue)
هذه الطريقة ترسل معلومات الرأس "Refresh" مع قيمة عددية تمثل فترة الزمنية (بأحداثيات الثواني) إلى المتصفح.
هذا المثال يوضح كيف يستخدم Servlet setIntHeader() الطريقة لضبط Refresh معلومات الرأس، لتحقيق تحديث الصفحة تلقائيًا.
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>" + title + "</title></head>\n" "<body bgcolor=\"#f0f0f0\">\n" + "<h1 align=\"center\">" + title + "</h1>\n" + "<p>الوقت الحالي هو: " + CT + "</p>\n"); } }
الآن دعونا نكتب Servlet المذكور أعلاه وننشئ المدخل التالي في ملف web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app> <servlet> <servlet-name>Refresh</servlet-name> <servlet-class>com.w3codebox.test.Refresh</servlet-class> </servlet> <servlet-mapping> <servlet-name>Refresh</servlet-name> <url-pattern>/TomcatTest/Refresh</url-pattern> </servlet-mapping> </web-app>
الآن يمكنك الوصول إلى هذا Servlet عبر http://localhost:8080/TomcatTest/Refresh. سيتم عرض الوقت الحالي كل 5 ثوانٍ. قم بتشغيل Servlet وتحقق من النتائج:
استخدام Servlet لتحديث الصفحة تلقائيًاالوقت الحالي هو: 9:44:50 مساءً |