javaweb學習23:監聽器
阿新 • • 發佈:2022-04-01
-
監聽器:
-
編寫一個監聽器:實現一個監聽器的介面;(有N種)
-
-
-
程式碼案例:
/**
* 統計網站線上人數:
* 其實就是統計session:因為
*/
public class OnlineCountListener implements HttpSessionListener {
//建立session監聽:看你的一舉一動
//一旦建立一個session,就會觸發一次這個事件!(觀察者模式)
public void sessionCreated(HttpSessionEvent se) {
ServletContext context = se.getSession().getServletContext();
System.out.println("Session ID:"+se.getSession().getId());
Integer onlineCount= (Integer)context.getAttribute("OnlineCount");
if(onlineCount ==null){
onlineCount=new Integer(1);
}else{
int count=onlineCount.intValue();
onlineCount=new Integer(count+1);
}
context.setAttribute("OnlineCount",onlineCount);
}
//銷燬session監聽
//一旦銷燬一個session,就會觸發一次這個事件!
public void sessionDestroyed(HttpSessionEvent se) {
ServletContext context = se.getSession().getServletContext();
se.getSession().invalidate();//銷燬session
Integer onlineCount= (Integer)context.getAttribute("OnlineCount");
if(onlineCount ==null){
onlineCount=new Integer(0);
}else{
int count=onlineCount.intValue();
onlineCount=new Integer(count-1);
}
context.setAttribute("OnlineCount",onlineCount);
}
/**
* Session銷燬:
* 1,手動銷燬: se.getSession().invalidate();
* 2,自動銷燬:
*/
}
-
程式碼案例: