JSP 클릭 통계


특정 페이지를 방문한 횟수를 알아야 하는 경우가 있습니다. 이 경우 페이지 방문 통계는 일반적으로 페이지 방문 횟수를 누적합니다. 사용자가 처음으로 로드합니다.

카운터를 구현하려면 애플리케이션 암시적 개체와 관련 메서드 getAttribute() 및 setAttribute()를 사용하여 이를 구현할 수 있습니다.

이 객체는 JSP 페이지의 전체 라이프사이클을 나타냅니다. 이 객체는 JSP 페이지가 초기화될 때 생성되고 JSP 페이지에서 jspDestroy()를 호출하면 삭제됩니다.

다음은 애플리케이션에서 변수를 생성하는 구문입니다.

application.setAttribute(String Key, Object Value);

위 방법을 사용하여 카운터 변수를 설정하고 변수 값을 업데이트할 수 있습니다. 이 변수를 읽는 방법은 다음과 같습니다.

application.getAttribute(String Key);

페이지에 접속할 때마다 카운터의 현재 값을 읽어 1씩 증가시킨 후 재설정하면 새로운 값이 됩니다. 페이지에 표시된 다음 사용자가 액세스할 때 사용됩니다.


예제 시연

이 예에서는 JSP를 사용하여 특정 페이지를 방문하는 총 사람 수를 계산하는 방법을 소개합니다. 웹 사이트에서 사용된 페이지의 총 클릭 수를 계산하려면 모든 JSP 페이지에 이 코드를 삽입해야 합니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<html>
<html>
<head>
<title>访问量统计</title>
</head>
<body>
<%
    Integer hitsCount = 
      (Integer)application.getAttribute("hitCounter");
    if( hitsCount ==null || hitsCount == 0 ){
       /* 第一次访问 */
       out.println("欢迎访问php中文网!");
       hitsCount = 1;
    }else{
       /* 返回访问值 */
       out.println("欢迎再次访问php中文网!");
       hitsCount += 1;
    }
    application.setAttribute("hitCounter", hitsCount);
%>

<p>页面访问量为: <%= hitsCount%></p>


</body>
</html>

이제 위 코드를 main.jsp 파일에 배치하고 http://localhost:8080/testjsp/main.jsp 파일에 액세스합니다. 페이지가 카운터를 생성하고 페이지를 새로 고칠 때마다 카운터가 변경됩니다(새로 고칠 때마다 1씩 증가).

다른 브라우저를 통해서도 액세스할 수 있으며 방문할 때마다 카운터가 1씩 증가합니다. 아래와 같이



카운터 재설정

위 방법을 사용하면 웹 서버 이후에 카운터가 재설정됩니다. 0이면 다시 시작됩니다. 즉, 다음 방법을 사용하여 이 문제를 해결할 수 있습니다.

  • 웹 계산을 위해 데이터베이스에 데이터 테이블 수를 정의합니다. 페이지 방문수 필드는 hitcount이고 기본값은 0이며 통계 데이터가 데이터 테이블에 기록됩니다.

  • 방문할 때마다 테이블의 조회수 필드를 읽습니다.


  • 방문할 때마다 조회수가 1씩 증가합니다.

  • 페이지에 새로운 hitcount 값을 페이지 조회수로 표시합니다.


  • 각 페이지의 방문수를 계산해야 하는 경우 위 로직을 사용하여 모든 페이지에 코드를 추가할 수 있습니다.