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

JSP 페이지를 일정 주기마다 자동으로 새로고침하는 방법

실시간 정보를 보여주는 웹 페이지(디지털 시계, 주식 시세, 모니터링 대시보드 등)를 만들다 보면, 사용자가 직접 새로고침하지 않아도 페이지가 스스로 갱신되도록 만들어야 할 때가 있습니다. JSP에서는 HTTP 응답 헤더만 설정하면 이러한 기능을 손쉽게 구현할 수 있습니다.

Refresh 헤더를 이용한 자동 새로고침 원리

핵심은 response 객체의 setIntHeader() 메서드입니다. 이 메서드로 Refresh 헤더에 초 단위 값을 지정하면, 브라우저는 해당 시간이 지날 때마다 페이지를 자동으로 다시 요청합니다.

예제 코드: 5초마다 갱신되는 디지털 시계

다음 예제는 setIntHeader() 메서드를 사용해 Refresh 헤더를 설정하여, 디지털 시계처럼 화면이 주기적으로 갱신되도록 구현한 것입니다.

<%@ 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("Current Time is: " + CT + "\n");
            %>
        </center>
    </body>
</html>

코드 핵심 포인트

  • response.setIntHeader("Refresh", 5); — 브라우저에게 5초마다 페이지를 다시 불러오라고 지시합니다. 숫자를 변경하면 갱신 주기를 자유롭게 조절할 수 있습니다.
  • GregorianCalendar — 서버의 현재 시각(시, 분, 초)을 조회하는 데 사용됩니다.
  • Calendar.AM_PM — 오전/오후 여부를 판별하여 AM 또는 PM을 표시합니다.

실행 결과 확인하기

위 코드를 main.jsp라는 이름으로 저장한 후 웹 서버에 배포하고, 브라우저에서 해당 JSP 페이지에 접속해 보세요. 약 5초마다 화면이 자동으로 갱신되며 현재 시스템 시간이 아래와 같이 표시됩니다.

Current Time is: 9:44:50 PM

이처럼 Refresh 헤더 하나만으로 별도의 자바스크립트 없이도 주기적인 페이지 갱신이 가능합니다. 다만 매번 전체 페이지를 다시 로드하는 방식이므로, 더 부드러운 부분 갱신이 필요하다면 AJAX나 WebSocket 같은 기술과 함께 활용하는 것도 고려해 보세요.