如果对监听器不了解的话,可以参看下面这个CSDN
https://blog.csdn.net/qq_41901915/article/details/86477771
第一个文件,用来监听项目的开始,一旦这个项目开启了,那么我就初始化一个参数,count1,把它存到域中
package tools;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class Mycontextlistener implements ServletContextListener{
@Override
public void contextDestroyed(ServletContextEvent sce) {
// TODO Auto-generated method stub
}
@Override
public void contextInitialized(ServletContextEvent sce) {
// TODO Auto-generated method stub
ServletContext c=sce.getServletContext();
c.setAttribute("count1", 0);
System.out.println("项目在线访问人数初始化完成");
}
}
第二个文件,一旦访问的话我就获取那个域对象,让它的数量+1,关掉的话就让它-1
package tools;
import javax.servlet.ServletContext;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
@WebListener
public class Myhttpsessionlistener implements HttpSessionListener{
public void sessionCreated(HttpSessionEvent se) {
// TODO Auto-generated method stub
HttpSession session=se.getSession();
ServletContext c=session.getServletContext();
int count=(int) c.getAttribute("count1");
count++;
c.setAttribute("count1", count);
System.out.println("增加1");
}
public void sessionDestroyed(HttpSessionEvent se) {
// TODO Auto-generated method stub
HttpSession session=se.getSession();
ServletContext c=session.getServletContext();
int count=(int) c.getAttribute("count1");
count--;
c.setAttribute("count1", count);
System.out.println("减少1");
}
}
第三个文件,然后再jsp页面进行显示
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>当前在线人数为:${ applicationScope.count1 }</h3>
</body>
</html>