package listener;
import javax.persistence.metamodel.SetAttribute;
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class onlineCountListener implements HttpSessionListener,
ServletContextAttributeListener, ServletContextListener {
private int count;
@Override
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
out("contextDestroyed()");
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
// TODO Auto-generated method stub
out("contextInitialized");
}
@Override
public void attributeAdded(ServletContextAttributeEvent arg0) {
// TODO Auto-generated method stub
out("attributeAdded("+arg0.getName()+","+arg0.getValue()+")");
}
@Override
public void attributeRemoved(ServletContextAttributeEvent arg0) {
// TODO Auto-generated method stub
out("attributeRemoved("+arg0.getName()+","+arg0.getValue()+")");
}
@Override
public void attributeReplaced(ServletContextAttributeEvent arg0) {
// TODO Auto-generated method stub
out("attributeReplaced("+arg0.getName()+","+arg0.getValue()+")");
}
@Override
public void sessionCreated(HttpSessionEvent arg0) {
// TODO Auto-generated method stub
count++;
setContext(arg0);
System.out.println(count);
}
@Override
public void sessionDestroyed(HttpSessionEvent arg0) {
// TODO Auto-generated method stub
count--;
setContext(arg0);
}
public void setContext(HttpSessionEvent arg0) {
arg0.getSession().getServletContext().setAttribute("online", new Integer(count));
}
public void out(String string) {
System.out.println("ContextListener:"+string);
}
import javax.persistence.metamodel.SetAttribute;
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class onlineCountListener implements HttpSessionListener,
ServletContextAttributeListener, ServletContextListener {
private int count;
@Override
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
out("contextDestroyed()");
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
// TODO Auto-generated method stub
out("contextInitialized");
}
@Override
public void attributeAdded(ServletContextAttributeEvent arg0) {
// TODO Auto-generated method stub
out("attributeAdded("+arg0.getName()+","+arg0.getValue()+")");
}
@Override
public void attributeRemoved(ServletContextAttributeEvent arg0) {
// TODO Auto-generated method stub
out("attributeRemoved("+arg0.getName()+","+arg0.getValue()+")");
}
@Override
public void attributeReplaced(ServletContextAttributeEvent arg0) {
// TODO Auto-generated method stub
out("attributeReplaced("+arg0.getName()+","+arg0.getValue()+")");
}
@Override
public void sessionCreated(HttpSessionEvent arg0) {
// TODO Auto-generated method stub
count++;
setContext(arg0);
System.out.println(count);
}
@Override
public void sessionDestroyed(HttpSessionEvent arg0) {
// TODO Auto-generated method stub
count--;
setContext(arg0);
}
public void setContext(HttpSessionEvent arg0) {
arg0.getSession().getServletContext().setAttribute("online", new Integer(count));
}
public void out(String string) {
System.out.println("ContextListener:"+string);
}
}
web.xml 文件配置
<listener>
<listener-class>listener.onlineCountListener</listener-class>
</listener>