Auto Refresh trong Servlet



Với một Webpage mà hiển thị chỉ số chứng khoán, exchange rate, … thì bạn cần Refresh các trang này bởi sử dụng nút Refresh hoặc Reload trên trình duyệt của bạn.

Java Servlet giúp công việc này được thực hiện dễ dàng hơn bằng việc cung cấp cho bạn một kỹ thuật giúp bạn Refresh trang web một cách tự động sau một khoảng thời gian đã cho.

Cách đơn giản nhất để Refresh một Webpage là sử dụng phương thức setIntHeader() của đối tượng Response. Sau đây là cú pháp cho phương thức này:

public void setIntHeader(String header, int headerValue)

Phương thức này gửi trường header là "Refresh" trở lại trình duyệt cùng một giá trị integer chỉ khoảng thời gian bằng giây.

Ví dụ về Auto Refresh trong Servlet

Sau đây là ví dụ minh họa cách một Servlet thực hiện việc Auto Refresh một Webpage bởi sử dụng phương thức setIntHeader() để thiết lập Refresh header.

// 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);
  }
}
Quảng cáo

Biên dịch Servlet trên và tạo các entry sau trong 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>
....
Quảng cáo

Bây giờ gọi Servlet trên bởi sử dụng URL là http://localhost:8080/Refresh sẽ hiển thị system time hiện tại sau mỗi 5 s như sau. Bạn chạy Servlet này và đợi kết quả:

Auto Page Refresh using Servlet

Current Time is: 9:44:50 PM

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Các bài học SEO phổ biến khác tại VietJack: