
Application → context
Session → 조회수 증가 오늘 하루 방문수 → 이벤트 리스너

→ war파일이 톰캣이 띄우는 하나의 어플리케이션
//리스너는 톰캣 관할
**@WebListener**
public class ContextListener **implements ServletContextListener,
ServletContextAttributeListener** {
public ContextListener() {
System.out.println("Context liistener 인스턴스 생성!");
}
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("Context init!!");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("Context destroy!!");
}
@Override
public void attributeAdded(ServletContextAttributeEvent event) {
System.out.println("arttribute add!!: " + event.getName());
}
@Override
public void attributeRemoved(ServletContextAttributeEvent event) {
System.out.println("attribute remove!!");
}
@Override
public void attributeReplaced(ServletContextAttributeEvent event) {
System.out.println("attribute replaced!");
}
}

필터랑 리스너는 로깅 확인용
시작하자 context 생성
@WebServlet("/context")
public class ContextListenerServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("context listener 확인용 servlet");
**ServletContext context = req.getServletContext();**
context.setAttribute("test1","value1"); // 추가
context.setAttribute("test2","value2"); // 추가
context.setAttribute("test2","value3"); // 수정
context.removeAttribute("test1"); // 삭제
}
}
