监听器
实现一个监听器的接口;有很多种
- 编写一个监听器
实现监听器的接口并重写里面的方法
package com.hxl.listener; import javax.servlet.ServletContext; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; //统计网站在线人数:统计session public class OnlineCountListener implements HttpSessionListener { //创建session的监听,看你的一举一动 //一旦创建一个session,就会触发一次这个事件 public void sessionCreated(HttpSessionEvent se) { ServletContext ctx = se.getSession().getServletContext(); System.out.println(se.getSession().getId()); Integer onlineCount = (Integer) ctx.getAttribute("OnlineCount"); if(onlineCount == null){ onlineCount = new Integer(1); }else{ //这样就可以吧Interger转变成int int count = onlineCount.intValue(); onlineCount = new Integer(count + 1); } ctx.setAttribute("OnlineCount",onlineCount); } //销毁session监听 //一旦销毁一个session,就会触发一次这个事件 public void sessionDestroyed(HttpSessionEvent se) { ServletContext ctx = se.getSession().getServletContext(); Integer onlineCount = (Integer) ctx.getAttribute("OnlineCount"); if(onlineCount == null){ onlineCount = new Integer(0); }else{ //这样就可以吧Interger转变成int int count = onlineCount.intValue(); onlineCount = new Integer(count - 1); } ctx.setAttribute("OnlineCount",onlineCount); } /* Session的销毁: 1.手动销毁 getSession().invalidate(); 2.自动销毁 在web.xml中配置过期时间 */ }
- 在web.xml中注册监听器
<!--注册监听器--> <listener> <listener-class>com.hxl.listener.OnlineCountListener</listener-class> </listener>
- 看情况是否使用。