实现一个监听器的接口;(有N种)
这里用seesion监听器统计网站在线人数演示监听器使用
1.编写一个监听器
实现监听器的接口
//统计网站在线人数
public class OnlineCountListener implements HttpSessionListener {
//创建session时触发
public void sessionCreated(HttpSessionEvent se) {
//获取servlet上下文对象
ServletContext servletContext = se.getSession().getServletContext();
Integer onlineCount = (Integer) servletContext.getAttribute("OnlineCount");
if (onlineCount==null){
//如果在线人数为0,则设置在线人数为1
onlineCount = new Integer(1);
}else {
//在线人数+1
int count = onlineCount.intValue();
onlineCount= new Integer(count+1);
}
//将在线人数放入servletContext对象中
servletContext.setAttribute("OnlineCount",onlineCount);
}
//销毁session时触发
public void sessionDestroyed(HttpSessionEvent se) {
//获取servlet上下文对象
ServletContext servletContext = se.getSession().getServletContext();
Integer onlineCount = (Integer) servletContext.getAttribute("OnlineCount");
if (onlineCount==null){
//如果在线人数为0,则设置在线人数为0
onlineCount = new Integer(0);
}else {
//在线人数-1
int count = onlineCount.intValue();
onlineCount= new Integer(count-1);
}
}
}
2.web.xml中注册监听器
<!--注册监听器-->
<listener>
<listener-class>com.zh.servlet.OnlineCountListener</listener-class>
</listener>
这里由于QQ浏览器自身访问时会创建一个session所以在线人数为2
再使用edge访问
在线人数+1