session的使用

session的使用

整体思路

重写HttpSessionListener方法;

在Listener中设置全局的计数器。

当网页有新的访问就更新计数器。

然后在服务端设置一个超时时间,

超过一定时间且用户没有活动时,

Session才会过期然后触发事件。

所以这个统计不会是实时准确的。

 实验效果

 

 

 

 

Listener.java
package com.fakeweb.session;

import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

@WebListener
public class SessionListener implements HttpSessionListener{
    private Integer TotalOnline=0;
    
    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
    @Override
    public void sessionCreated(HttpSessionEvent arg0) {
        // TODO Auto-generated method stub
        TotalOnline++;
        System.out.println("已创建"+sdf.format(new Date())+"目前在线人数:"+TotalOnline);
        arg0.getSession().getServletContext().setAttribute("online", TotalOnline);
        /*
         * 参考链接
         * https://www.pocketdigi.com/20120405/753.html
         */
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent arg0) {
        // TODO Auto-generated method stub
        TotalOnline--;
        System.out.println("已销毁"+sdf.format(new Date())+"目前在线人数:"+TotalOnline);
        arg0.getSession().getServletContext().setAttribute("online", TotalOnline);

    }

}

web.xml
<?xml version="1.0" encoding="UTF-8"?>

<web-app ...>
        
   ...
    
  <listener>
      <listener-class>com.fakeweb.session.SessionListener</listener-class>
  </listener>

  <session-config>  
     <session-timeout>2</session-timeout>  
  </session-config>  
 
   ...  

</web-app>

 <input type="text" value="当前在线人数<%=(Integer)application.getAttribute("online")%>" ......>

 

 

 

 

百度云

 链接: https://pan.baidu.com/s/1687WynllFZ0DN95TnsdGDQ 提取码: z5us 复制这段内容后打开百度网盘手机App,操作更方便哦

 

参考连接

https://www.pocketdigi.com/20120405/753.html

转载于:https://www.cnblogs.com/HuppertWu/p/10659209.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值