WebListener显示访问数量

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();
    }
}

posted @ 2022-05-29 22:03  爱豆技术部  阅读(38)  评论(0)    收藏  举报