WebListener显示访问数量
getServletContext通过创建域来显示访问数量

package com.msb;
import javax.servlet.ServletContext;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
@WebListener
public class HttpLis implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent se) {
//发生创建域时,count+
HttpSession session = se.getSession();
//将session添加到中application中
ServletContext application = session.getServletContext();
Object attribute = application.getAttribute("count");
if (attribute==null){//第一次访问时
servletContext.setAttribute("count",1);
}else {//之后访问
int count = (int)attribute;
servletContext.setAttribute("count",++count);
}
}
public void sessionDestroyed(HttpSessionEvent se) {
HttpSession session = se.getSession();
ServletContext servletContext = session.getServletContext();
int count = (int)servletContext.getAttribute("count");
servletContext.setAttribute("count",--count);
}
}
<%--
Created by IntelliJ IDEA.
User: tomel
Date: 2022/5/29
Time: 7:41
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
welcome to my new page
当前在线人数为:
${applicationScope.count}
</body>
</html>
package com.msb;
//访问手动销毁在线数;销毁域session使用invalidate
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@WebServlet("/fileout.do")
public class fileout extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
HttpSession session = req.getSession();
session.invalidate();
}
}