* sessionChecker.jsp
<%@ page contentType="text/html; charset=euc-kr" %>
<jsp:useBean id="sc" class="SessionChecker" scope="application" />
<%
session.setMaxInactiveInterval(60); // 걍 결과가 빨리 보고싶어서여.. 60초
sc.setSession(session);
out.println("현재 접속자 수 : " + sc.getNowUser());
%>
* SessionChecker.java
import java.io.*;
import java.util.*;
import javax.servlet.http.*;
public class SessionChecker{
public static int nowUser = 0;
public void setSession(HttpSession session){
// 리스너 객체를 생성해서 이것도 세션에 같이 담는다. 리스너 라는 이름으로...
session.setAttribute("listener", new CustomBindingListener());
}
public static void setNowUser(int x){
nowUser += x;
}
public int getNowUser(){
return this.nowUser;
}
}
// 여기서 구현했습니다..
class CustomBindingListener implements HttpSessionBindingListener {
public void valueBound(HttpSessionBindingEvent event) {
// 세션이 생겼을 할 내용
SessionChecker.setNowUser(1);
System.out.println("BOUND as " + event.getName() + " to " + event.getSession().getId());
}
public void valueUnbound(HttpSessionBindingEvent event) {
// 세션이 종료되었을때
SessionChecker.setNowUser(-1);
System.out.println("UNBOUND as " + event.getName() + " to " + event.getSession().getId());
}
}