서블릿이 자동으로 페이지를 새로 고칩니다.


실시간 게임 결과나 주식 시장 상황, 환율을 표시하는 웹페이지가 있다고 가정해 보겠습니다. 이러한 모든 유형의 페이지에서는 웹페이지를 정기적으로 새로 고쳐야 합니다.

Java Servlet은 웹페이지가 지정된 시간 간격으로 자동으로 새로 고쳐지는 메커니즘을 제공합니다.

웹페이지를 새로 고치는 가장 쉬운 방법은 응답 객체의 메소드 setIntHeader()를 사용하는 것입니다. 이 메소드의 정의는 다음과 같습니다.

public void setIntHeader(String header, int headerValue)

이 메소드는 시간 간격(초)을 나타내는 정수 값과 함께 "새로 고침" 헤더를 브라우저로 다시 보냅니다.

자동 새로 고침 페이지 예

이 예는 Servlet이 setIntHeader() 메소드를 사용하여 Refresh 헤더 정보를 설정하는 방법을 보여줍니다. 달성 페이지를 자동으로 새로 고칩니다.

// 导入必需的 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);
  }
}

이제 위의 서블릿을 컴파일하고 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>
....

이제 URL http://localhost:8080/Refresh Servlets를 방문하여 이를 호출합니다. . 5초마다 현재 시스템 시간이 표시됩니다. 서블릿을 실행하고 결과가 나올 때까지 기다립니다.

< tbody>

서블릿을 사용하여 페이지 자동 새로 고침

使用 Servlet 自动刷新页面

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

현재 시간: 9:44:50 오후
<🎜>