2019独角兽企业重金招聘Python工程师标准>>>
1、ServletContext记录个数
package cn.demo.listener;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class MyServletContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
// 容器一启动ServletContext对象就会创建,该方法就会执行
System.out.println("容器创建了...");
ServletContext servletContext = sce.getServletContext();
int count = 0;
servletContext.setAttribute("count", count);
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
// 容器销毁ServletContext对象就销毁,该方法就会执行
System.out.println("容器销毁了...");
}
}
web.xml配置
<listener>
<listener-class>cn.demo.listener.MyServletContextListener</listener-class>
</listener>
2、监听session创建
package cn.demo.listener;
import java.util.Date;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
/**
* 监听session个数
*
*/
public class MySessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent se) {
// 当服务器创建一个session的时候该方法执行
System.out.println("session被创建了..." + se.getSession().getId() + "..." + new Date());
ServletContext servletContext = se.getSession().getServletContext();
int count = (Integer) servletContext.getAttribute("count");
count++;
servletContext.setAttribute("count", count);
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("session被销毁了..." + se.getSession().getId() + "..." + new Date());
ServletContext servletContext = se.getSession().getServletContext();
int count = (Integer) servletContext.getAttribute("count");
count--;
servletContext.setAttribute("count", count);
}
}
web.xml
<listener>
<listener-class>cn.itcast.listener.MySessionListener</listener-class>
</listener>
3、页面显示
showSessionCount.jsp显示
<body>
<h2 align="center">当前服务器session个数:${applicationScope.count}</h2>
</body>