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 =
      "\n";
      out.println(docType +
        "\n" +
        "" + title + "\n"+
        "\n" +
        "

" + title + "

\n" + "

Current Time is: " + CT + "

\n"); } // Method to handle POST method request. public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }

Biên dịch Servlet trên và tạo các entry sau trong web.xml:

....
 
     Refresh
     Refresh
 
 
 
     Refresh
     /Refresh
 
....

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ài học SEO phổ biến khác tại VietJack: