JSP 히트 카운터란 무엇인가?
히트 카운터(Hit Counter)는 특정 웹페이지가 조회된 횟수를 집계하여 사이트 방문량을 한눈에 보여주는 기능입니다. JSP에서는 application 내장 객체를 활용하면 별도의 외부 라이브러리 없이도 간단하게 히트 카운터를 구현할 수 있습니다.
application 객체를 이용한 기본 구현
JSP의 application 객체는 웹 애플리케이션 전체에서 공유되는 저장소 역할을 합니다. setAttribute()와 getAttribute() 메서드를 사용하면 모든 사용자가 공유하는 방문 횟수를 저장하고 증가시킬 수 있습니다.
다음은 가장 기본적인 형태의 JSP 히트 카운터 예제입니다.
<%@ page import="java.io.*" %>
<%
Integer hitsCount = (Integer) application.getAttribute("hitCounter");
if (hitsCount == null || hitsCount == 0) {
// 페이지 최초 방문 시
out.println("첫 방문을 환영합니다!");
hitsCount = 1;
} else {
// 재방문 시 카운트 증가
hitsCount = hitsCount + 1;
}
application.setAttribute("hitCounter", hitsCount);
%>
<p>총 방문 횟수: <%= hitsCount %></p>위 코드는 서버가 재시작되기 전까지 방문 횟수를 메모리에 유지합니다. 애플리케이션 스코프에 값이 저장되므로 여러 사용자가 동시에 접속해도 하나의 카운터가 공유됩니다.
더 안정적인 카운터가 필요하다면?
메모리 기반 카운터는 서버가 재시작되면 값이 초기화된다는 단점이 있습니다. 방문 수를 영구적으로 보관하려면 다음과 같은 방법을 고려할 수 있습니다.
- 데이터베이스 활용: JDBC를 통해 방문 횟수를 DB 테이블에 저장하고 갱신하는 방식으로, 가장 일반적이고 신뢰성이 높습니다.
- 파일 입출력 활용: 텍스트 파일에 카운트 값을 읽고 쓰는 방식으로, 소규모 사이트에 적합합니다.
- 세션 기반 중복 방지: 새로고침 시 카운트가 계속 올라가는 것을 막으려면
session객체를 이용해 동일 사용자의 중복 조회를 필터링할 수 있습니다.
참고 자료
히트 카운터 구현 과정을 단계별로 자세히 학습하고 싶다면 아래 튜토리얼을 참고하세요.