728x90
반응형
서블릿 관련 Listener API
자바 프로그램의 이벤트 핸들러처럼 서블릿에서도 서블릿에서 발생하는 이벤트에 대해 적절한 처리를 해주는 여러가지 리스너를 제공합니다.
Listener | 메서드 | 기능 |
ServletContextAttributeListener | attributeAdded() attributeRemoved() attributeReplaced() |
Context 객체에 속성 추가/제거/수정 이벤트 발생 시 처리 |
HttpSessionListener | sessionCreated() sessionDestroyed() |
세션 객체의 생성/소멸 이벤트 발생 시 처리 |
ServletRequestListener | requestInitialized() requestDestroyed() |
클라이언트 요청 이벤트 발생 시 처리 |
ServletRequestAttributeListener | attributeAdded() attributeRemoved() attributeReplaced() |
요청 객체에 속성 추가/제거/수정 이벤트 발생 시 처리 |
HttpSessionBindingListener | valueBound() valueUnbound() |
세션에 바인딩/언바인딩 객체를 알려주는 이벤트 발생 시 처리 |
HttpSessionAttributeListener | attributeAdded() attributeRemoved() attributeReplaced() |
세션에 속성 추가/제거/수정 이벤트 발생 시 처리 |
ServletContextListener | contextInitialized() contextDestroyed() |
컨텍스트 객체의 생성/소멸 이벤트 발생 시 처리 |
HttpSessionActivationListener | sessionDidActivate() sessionWillPassivate() |
세션의 활성화/비활성화 이벤트 발생 시 처리 |
HttpSessionListener 예제
리스너를 생성할 패키지를 선택하고 마우스 오른쪽 클릭 후 New - Listener 를 선택합니다.
Class name 을 입력하고 Next 를 클릭합니다.
오른쪽에 ... HttpSessionListener 로 되어있는 체크 박스를 선택하고 Next 를 클릭합니다.
HttpSessionListener 가 맞는지 확인한 후 Finish 를 클릭합니다.
@WebListener 애너테이션으로 리스너가 생성된 것을 확인할 수 있습니다.
세션이 생성 되었을때나 소멸 되었을때 처리를 할 수 있으니 사용자가 로그인 했을때나 로그아웃을 했을때 전체 접속자 수를 카운팅 하는 것을 할 수 있겠네요.
@WebListener
public class ListenerTest implements HttpSessionListener {
...
static int total_user = 0; // 전체 접속자 수
/**
* @see HttpSessionListener#sessionCreated(HttpSessionEvent)
*/
public void sessionCreated(HttpSessionEvent se) {
// TODO Auto-generated method stub
++total_user; // 로그인 시 증가
...
}
/**
* @see HttpSessionListener#sessionDestroyed(HttpSessionEvent)
*/
public void sessionDestroyed(HttpSessionEvent se) {
// TODO Auto-generated method stub
--total_user; // 로그아웃 시 감소
...
}
}
간단하게 하면 이렇게 각 이벤트 별로 증가와 감소 처리를 할 수 있을거 같습니다.
여기까지 임미다.
728x90
'개발 > Java' 카테고리의 다른 글
[JAVA - WEB] JSP 표현 언어(Expression Language) (0) | 2022.11.06 |
---|---|
[JAVA - WEB] JSP 액션 태그(Action Tag) (0) | 2022.11.06 |
[JAVA - WEB] JSP 내장 객체(내장 요소) (0) | 2022.11.06 |
[JAVA - WEB] JSP 스크립트 요소 (0) | 2022.11.06 |
[JAVA - WEB] JSP 정의와 구성 요소 (0) | 2022.11.06 |
[JAVA - WEB] 서블릿 필터(Filter) (0) | 2022.11.05 |
[JAVA - WEB] 세션(Session) (1) | 2022.11.03 |
[JAVA - WEB] 쿠키(Cookie) (0) | 2022.11.03 |
[JAVA - WEB] 서블릿 바인딩(binding) (0) | 2022.11.02 |
[JAVA - WEB] 서블릿 포워드(forward) (0) | 2022.11.02 |