一、监听器
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import javax.servlet.http.HttpSessionBindingEvent;
@WebListener()
public class myListener implements ServletContextListener,
HttpSessionListener, HttpSessionAttributeListener {
// Public constructor is required by servlet spec
public myListener() {
}
// -------------------------------------------------------
// ServletContextListener implementation
// -------------------------------------------------------
//创建一个公用的数字
public void contextInitialized(ServletContextEvent sce) {
/* 应用程序打开,获取ServletContextEvent中的内容*/
}
public void contextDestroyed(ServletContextEvent sce) {
/*应用程序关闭*/
}
// -------------------------------------------------------
// HttpSessionListener implementation
// -------------------------------------------------------
public void sessionCreated(HttpSessionEvent se) {
/*会话被创建*/
Integer i = (Integer) se.getSession().getServletContext().getAttribute("num");
if (i==null){
i = new Integer(1);
}
i = i.intValue();
i = new Integer( i +1);
se.getSession().getServletContext().setAttribute("num",i);
}
public void sessionDestroyed(HttpSessionEvent se) {
/*会话被销毁*/
Integer i = (Integer) se.getSession().getServletContext().getAttribute("num");
i = i.intValue();
i = new Integer(i - 1);
se.getSession().getServletContext().setAttribute("num",i);
}
// -------------------------------------------------------
// HttpSessionAttributeListener implementation
// -------------------------------------------------------
public void attributeAdded(HttpSessionBindingEvent sbe) {
/* 执行这个方法时,会话中会增加一个属性*/
}
public void attributeRemoved(HttpSessionBindingEvent sbe) {
/*执行这个方法时,会话中的属性会被删除*/
}
public void attributeReplaced(HttpSessionBindingEvent sbe) {
/* 执行这个方法时,会话中的属性会被替换*/
}
}
二、xml配置
<!--监听器一般放在最底部-->
<session-config>
<!--设置会话被销毁时间-->
<session-timeout>30</session-timeout>
</session-config>
<listener>
<!--设置监听器的地址-->
<listener-class>myListener</listener-class>
</listener>
</web-app>