session的使用

Posted huppertwu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于session的使用的主要内容,如果未能解决你的问题,请参考以下文章

一个队asp.net session进行了再次封装的C#类的代码

redis存储session配制方法

hibernate在使用getCurrentSession时提示no session found for current thread

少部分手机浏览器对于COOKIE支持不够导致服务端无法读取session的解决方案

如何处理会话超时异常(使用 MVP 地点和活动)?

微信小程序代码片段