Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

JSP에서 웹페이지 자동 새로고침(Auto Refresh) 구현하는 방법

JSP는 응답 객체(response object)가 제공하는 메커니즘을 활용하면 웹페이지가 일정한 시간 간격마다 자동으로 새로고침되도록 손쉽게 구현할 수 있습니다.

setIntHeader() 메서드란?

웹페이지를 자동으로 새로고침하는 가장 간단한 방법은 response 객체의 setIntHeader() 메서드를 사용하는 것입니다. 이 메서드의 시그니처는 다음과 같습니다.

public void setIntHeader(String header, int headerValue)

이 메서드는 브라우저에 "Refresh" 헤더를 전송하며, 두 번째 인자로 전달된 정수 값(초 단위)만큼의 시간이 지난 후 페이지가 다시 로드되도록 합니다.

자동 새로고침 예제

다음 예제에서는 setIntHeader() 메서드로 Refresh 헤더를 설정하여, 디지털 시계처럼 5초마다 현재 시간이 갱신되는 화면을 만들어 보겠습니다.

예제 코드

<%@ page import = "java.io.*,java.util.*" %>
<html>
   <head>
      <title>Auto Refresh Header Example</title>
   </head>
   <body>
      <center>
         <h2>Auto Refresh Header Example</h2>
         <%
            // 새로고침 간격을 5초로 설정
            response.setIntHeader("Refresh", 5);

            // 현재 시간 가져오기
            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;
               out.println("현재 시간: " + CT + "\n");
         %>
      </center>
   </body>
</html>

실행 방법 및 결과

위 코드를 main.jsp 파일로 저장한 뒤 브라우저에서 접속해 보세요. 그러면 아래와 같이 5초마다 시스템의 현재 시간이 자동으로 갱신되어 표시됩니다. JSP를 실행한 후 잠시만 기다리면 결과를 확인할 수 있습니다.

Auto Refresh Header Example
Current Time is: 9:44:50 PM

참고: HTML 메타 태그를 이용한 대체 방법

JSP 코드를 수정하지 않고도 HTML의 <meta> 태그로 동일한 효과를 얻을 수 있습니다. 다음 코드를 <head> 영역에 추가하면 역시 5초마다 페이지가 새로고침됩니다.

<meta http-equiv="Refresh" content="5">

다만 갱신 주기를 서버 측 로직에 따라 동적으로 변경해야 하는 경우에는 response 객체의 setIntHeader() 메서드를 사용하는 것이 훨씬 유연하고 확장성이 좋습니다.