利用监听器简单实现显示在线人数

创建项目:
在这里插入图片描述
选择web application,点击next
在这里插入图片描述
自定义项目名称
在这里插入图片描述
导包操作:
选择file中的project Structure
在这里插入图片描述
选择Modules中的Deoendencies中右边的加号
在这里插入图片描述
选择第一项
在这里插入图片描述
添加tomcat的lib目录下的servlet-api.jar,jsp-api.jar
在这里插入图片描述

勾上添加的Jar包,点击apply
在这里插入图片描述
添加tomcat,选择add configuration
在这里插入图片描述
点击+号,选择tomcat,local
在这里插入图片描述
配置tomcat服务器
在这里插入图片描述
点击右下角的fix,修改application context
在这里插入图片描述
创建src目录下的listense文件,创建ListenseTest.java
在这里插入图片描述
添加如下代码:

public class ListenseTest implements HttpSessionListener, ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent){
        //获取application
        ServletContext servletContext = servletContextEvent.getServletContext();
        //设置网站的初始在线人数
        servletContext.setAttribute("count",0);
    }


    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent){
        System.out.println("执行contextDestroyed");
    }

    @Override
    public void sessionCreated(HttpSessionEvent httpSessionEvent){
        //获取application对象
        ServletContext servletContext = httpSessionEvent.getSession().getServletContext();
        int count = (int) servletContext.getAttribute("count");
        count++;
        servletContext.setAttribute("count",count);

    }

    @Override
    public void sessionDestroyed(HttpSessionEvent httpSessionEvent){
        //获取application对象
        ServletContext servletContext = httpSessionEvent.getSession().getServletContext();
        int count = (int) servletContext.getAttribute("count");
        count--;
        servletContext.setAttribute("count",count);
    }
}

jsp页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
 在线的人数为:${applicationScope.count}
  </body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <listener>
        <listener-class>com.ctb.listense.ListenseTest</listener-class>
    </listener>
</web-app>

实现效果:
当只用谷歌浏览器打开时
在这里插入图片描述
把另外一个浏览器同时打开时
在这里插入图片描述

发布了48 篇原创文章 · 获赞 0 · 访问量 675

猜你喜欢

转载自blog.csdn.net/weixin_44943485/article/details/105087421