发表于: 2018-03-08 17:02:36

2 768


今天完成的事情:

1、实现了用HttpSessionListener
监听session的创建与销毁,达到监听在线人数的目的。
首先写一个监听器的工具类:
public class MySessionListener implements HttpSessionListener {
    /**定义在线人数**/
    private static long onlineCounter = 0l;
    /**会话创建之时,执行的操作,将会话失效时间改为10s,在线人数加一,打印在线人数。**/
    @Override
    public void sessionCreated(HttpSessionEvent httpSessionEvent) {
         /**定义session时长10s,10s用户没有任何操作,就会删掉这个session**/
        httpSessionEvent.getSession().setMaxInactiveInterval(10);
        onlineCounter++;
        System.out.println("在线人数增加至:"+onlineCounter+"人!");
    }
    /**会话结束时,执行的操作,在线人数减一,打印在线人数。**/
    @Override
    public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
        onlineCounter--;
        System.out.println("在线人数减少至:"+onlineCounter+"人!");
    }
    /**一个取得在线人数的方法**/
    public static long getOnlineCounter() {
        return onlineCounter;
    }
}
之后,在web.xml中注册这个监听器:
<!-- 自定义监听器,用来获取当前在线人数 -->
<listener>
  <listener-class>com.byou.util.listener.MySessionListener</listener-class>
</listener>
当运行程序,且浏览器登陆项目页面的时候,在IDEA的控制栏中会显示在线人数。

目前只会用监听器实现这个功能。 


拦截器、监听器、过滤器这三个就先学到这了,先进行任务吧。


明天计划的事情:

明天把任务五的工程再完善完善,提交任务五,开始任务六。


遇到的问题:

遇到的问题就是在IDEA运行程序的时候,控制台显示“在线人数增加至:2人!”,但是只有一个浏览器在访问这个网页。不知道多出来的那个人是谁。这个问题只在IDEA运行程序,浏览器跳出来页面的时候出现。别的时候,显示的在线人数正常。


收获:

自己自己写了一个监听器,实现在线人数实时显示功能。


返回列表 返回列表
评论

    分享到