javaweb学习23:监听器
-
监听器:
-
编写一个监听器:实现一个监听器的接口;(有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,自动销毁:
*/
}
-
代码案例:
分类:
06-Java Web
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律