Servletler - Otomatik Sayfa Yenileme
Canlı oyun skorunu veya borsa durumunu veya döviz kuru oranını gösteren bir web sayfasını düşünün. Tüm bu tür sayfalar için, tarayıcınızda yenile veya yeniden yükle düğmesini kullanarak web sayfanızı düzenli olarak yenilemeniz gerekir.
Java Servlet, belirli bir aralıktan sonra otomatik olarak yenilenecek şekilde bir web sayfası oluşturabileceğiniz bir mekanizma sağlayarak bu işi kolaylaştırır.
Bir web sayfasını yenilemenin en basit yolu yöntem kullanmaktır setIntHeader()yanıt nesnesinin. Bu yöntemin imzası aşağıdadır -
public void setIntHeader(String header, int headerValue)
Bu yöntem, saniye cinsinden zaman aralığını gösteren bir tamsayı değeriyle birlikte tarayıcıya "Refresh" başlığını geri gönderir.
Otomatik Sayfa Yenileme Örneği
Bu örnek, bir sunucu uygulamasının otomatik sayfa yenilemesini kullanarak nasıl gerçekleştirdiğini gösterir. setIntHeader() ayarlama yöntemi Refresh başlık.
// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
// Extend HttpServlet class
public class Refresh extends HttpServlet {
// Method to handle GET method request.
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Set refresh, autoload time as 5 seconds
response.setIntHeader("Refresh", 5);
// Set response content type
response.setContentType("text/html");
// Get current time
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 = "Auto Page Refresh using 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>Current Time is: " + CT + "</p>\n"
);
}
// Method to handle POST method request.
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
Şimdi yukarıdaki sunucu uygulamasını derleyip web.xml'de aşağıdaki girdileri oluşturalım.
....
<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>
....
Şimdi bu sunucu uygulamasını http: // localhost: 8080 / Yenileme URL'sini kullanarak çağırın ve her 5 saniyede bir aşağıdaki gibi geçerli sistem zamanını gösterir. Yalnızca sunucu uygulamasını çalıştırın ve sonucu görmek için bekleyin -
Auto Page Refresh using Servlet
Current Time is: 9:44:50 PM