【SessionListener】

@WebListenerpublic class SessionListener implements HttpSessionListener,HttpSessionIdListener{    @Override    public void sessionIdChanged(HttpSessionEvent e, String oldSessionId) {        SessionRegistry.updateSessionId(e.getSession(),oldSessionId);        System.out.println(this.date()+":Session ID:"+oldSessionId+" changed to "+e.getSession().getId());    }

    private String date() {        SimpleDateFormat f = new SimpleDateFormat("EEE dd,mm,yyyy HH:mm:ss");        return f.format(System.currentTimeMillis());    }

    @Override    public void sessionCreated(HttpSessionEvent e) {        SessionRegistry.addSession(e.getSession());        System.out.println(this.date() + ":Session "+e.getSession().getId()+"created.");    }

    @Override    public void sessionDestroyed(HttpSessionEvent e) {        SessionRegistry.removeSession(e.getSession());        System.out.println(this.date() + ":Session "+e.getSession().getId()+"destroyed.");    }}

【SessionRegistry】比较轻量,私有构造,一些静态方法

public final class SessionRegistry {    private static final Map<String,HttpSession> SESSIONS = new Hashtable<>();    public static void addSession(HttpSession session){        SESSIONS.put(session.getId(),session);    }    public static void updateSessionId(HttpSession session,String oldSessionId){        synchronized (SESSIONS){            SESSIONS.remove(oldSessionId);            addSession(session);        }    }

    public static void removeSession(HttpSession session){        SESSIONS.remove(session.getId());    }

    public static List<HttpSession> getAllSessions(){        return new ArrayList<>(SESSIONS.values());    }

    public static int getNumberOfSessions(){        return SESSIONS.size();    }    private SessionRegistry(){}}

【web.xml】
<listener>    <listener-class>net.mypla.SessionListener</listener-class></listener>

转载于:https://www.cnblogs.com/chenhui7373/p/8623267.html

Listener 快速开始相关推荐

  1. oracle中间人投毒漏洞,Oracle Database Server 'TNS Listener'远程数据投毒漏洞(CVE-2012-1675)的完美解决方法...

    环境:Windows 2008 R2 + Oracle 10.2.0.3 应用最新bundle patch后,扫描依然报出漏洞 Oracle Database Server 'TNS Listener ...

  2. EventBus使用详解的

    在使用ApplicationEvent和Listener快速实现业务解耦中提到了用Spring提供的观察者设计模式完成系统内部逻辑解耦.本文将介绍Google-Guava中的一种消息发布-订阅类库-- ...

  3. vue2-组件化开发

    组件化 处理组件的边界情况 parent child ref provide&inject attrs &listener 快速原型开发 独立运行组件 处理组件的边界情况 parent ...

  4. Android视频编辑SDK--RDVECore来自锐动的无UI,高度抽象化API

    1    RDVECore功能概述 RDVECore是锐动推出的无UI,高度抽象化API的视频编辑SDK,支持以下功能: 1.1 丰富的编辑功能  RDVECore包含了丰富的基础功能,对于编辑中的视 ...

  5. Guava-EventBus使用详解

    在使用ApplicationEvent和Listener快速实现业务解耦中提到了用Spring提供的观察者设计模式完成系统内部逻辑解耦.本文将介绍Google-Guava中的一种消息发布-订阅类库-- ...

  6. 玩转 SpringBoot 2 快速整合 Listener

    前言 本文主要介绍如何在SpringBoot 2 中使用 Listener 的快速搭建教程,阅读前需要你必须了解 Listener 的基础使用以及如何搭建 SpringBoot 项目. 快速演示操作 ...

  7. Listener监听器快速入门

    目录 Listener 1. 概述 2.分类 3.代码演示 Listener 1. 概述 Listener 表示监听器,是 JavaWeb 三大组件(Servlet.Filter.Listener)之 ...

  8. idea缩写快捷键_IDEA快捷键大全 快速页面重构

    常用的IDEA快捷键: 1.写代码时用Alt-Insert(Code|Generate-)可以创建类里面任何字段的getter与setter方法. 2.右键点击断点标记(在文本的左边栏里)激活速查菜单 ...

  9. JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署...

    接上篇<JAVA WEB快速入门之环境搭建>,在完成了环境搭建后(JDK.Tomcat.IDE),现在是万事具备,就差写代码了,今天就来从编写一个JSP WEB网站了解JSP WEB网站的 ...

最新文章

  1. 复旦大学计算机专业直博,上海复旦大学计算机科学技术学院2016博士招生选拔办法...
  2. APP抓链接工具(Fiddler版)
  3. Flink从入门到精通100篇(八)-美团点评是如何在 Flink平台建立 实时数仓的?
  4. 成功解决softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be
  5. c语言24点程序,C语言24点问题
  6. Microsoft Updater Application Block 1.5.3 服务器端manifest文件设计 [翻译]
  7. 最近学到的「短链接」知识
  8. jgGrid扩展 显示查询用时
  9. 非线性动力学 matlab,非线性动力学matlab
  10. 可达性分析之三色标记算法详解
  11. PostgreSQL 中文手册
  12. python爬取本地文本中的成语_Python爬取成语:从3字到12字
  13. 互联网大数据时代下亚马逊是如何解决数据存储的
  14. 洛克菲勒写给儿子的38封信
  15. 免疫系统与冠状病毒之争:抗体水平下降时,T细胞会支持你
  16. php中文拼音模糊,两种php中文字符转拼音问题解决方法
  17. 天涯明月刀最新服务器,天涯明月刀手游手游开服表_天涯明月刀手游手游开服时间表_新服新区预告_第一手游网...
  18. 星形接法和三角形接法电压和电流关系
  19. 关于Go语言的底层,你想知道的都在这里!
  20. matlab导入excel数据算方差,基于MATLAB与EXCEL工具的均值-方差模型

热门文章

  1. 9个月宝宝还不会爬怎么办?
  2. 如果手里有20万是放银行吃利息还是投资比较合适?
  3. 1981年长城一元硬币值钱吗?
  4. 怎样的销售能快速成交别人?
  5. 一般来讲,大公司都有自己的决策团队
  6. 如何找到解决问题的方法?
  7. 我有一个朋友毕业后一直在腾讯
  8. 为什‮多很了学么‬营销‮识知‬依然赚不到钱?
  9. IT程序员们平时都喜欢逛什么论坛呢?
  10. getMap(Thread t)