JSP는 웹페이지가 일정한 시간 간격마다 자동으로 새로고침되도록 구현할 수 있는 메커니즘을 제공하여 개발자의 작업을 크게 편리하게 해줍니다.
웹페이지를 자동으로 새로고침하는 가장 간단한 방법은 response 객체의 setIntHeader() 메서드를 사용하는 것입니다. 이 메서드의 시그니처는 다음과 같습니다.
public void setIntHeader(String header, int headerValue)
이 메서드는 브라우저에 "Refresh" 헤더를 전송하며, 두 번째 인자로 전달되는 정수 값은 새로고침이 발생할 시간 간격을 초 단위로 나타냅니다.
자동 페이지 새로고침 예제
다음 예제에서는 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: " + CT + "
");
%>
</center>
</body>
</html>위 코드를 main.jsp 파일로 저장한 후 브라우저에서 접속해 보세요. 그러면 아래와 같이 현재 시스템 시간이 5초마다 자동으로 갱신되어 표시됩니다. JSP를 실행한 뒤 잠시만 기다리면 결과를 확인할 수 있습니다.
실행 결과
Auto Refresh Header Example Current Time is: 9:44:50 PM
이처럼 setIntHeader() 메서드 하나만으로 별도의 JavaScript 없이도 서버 측에서 페이지 자동 갱신을 구현할 수 있습니다. 실시간 데이터 모니터링 화면, 대시보드, 알림 페이지 등 주기적인 업데이트가 필요한 다양한 상황에서 유용하게 활용할 수 있습니다.