✅ 서블릿 리스너
package com.filtertest.common.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class ContextListenerTest implements ServletContextListener{
// ServletContextListener 인터페이스 구현해야함
// ctrl+alt+s+v -> 두개 메소드 다 체크
@Override
public void contextDestroyed(ServletContextEvent sce) {
// 톰켓의 servletContext 객체가 소멸됐을 때 실행
// 톰켓종료시 == 서버 종료시
System.out.println("서버 죽음");
}
@Override
public void contextInitialized(ServletContextEvent sce) {
// 톰켓의 servletContext 객체가 생성됬을 때 실행
// 톰켓실행시 == 서버킬때
System.out.println("서버 실행");
}
}
// web.xml 파일에서 등록해줘야함!
<!-- 리스너 등록 -->
<listener>
<listener-class>
com.filtertest.common.listener.ContextListenerTest
</listener-class>
</listener>
✅ 새파일에서 리스너 만들기
package com.filtertest.common.listener;
import javax.servlet.ServletRequestAttributeEvent;
import javax.servlet.ServletRequestAttributeListener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpServletRequest;
@WebListener
public class RequestListenerTest implements ServletRequestListener, ServletRequestAttributeListener {
public void requestInitialized(ServletRequestEvent sre) {
// 요청이 들어왔을 때 무조건 실행
System.out.println("요청이 왔다!");
String uri = ((HttpServletRequest)sre.getServletRequest()).getRequestURI();
System.out.println(uri);
}
public void attributeAdded(ServletRequestAttributeEvent srae) {
// setAttribute로 값 넣었을 때 무조건 실행
System.out.println("setAttribute()메소드로 데이터 추가");
String key = srae.getName();
Object value = srae.getValue();
System.out.println(key+" "+value);
}
}