Listener 快速开始
【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 快速开始相关推荐
- oracle中间人投毒漏洞,Oracle Database Server 'TNS Listener'远程数据投毒漏洞(CVE-2012-1675)的完美解决方法...
环境:Windows 2008 R2 + Oracle 10.2.0.3 应用最新bundle patch后,扫描依然报出漏洞 Oracle Database Server 'TNS Listener ...
- EventBus使用详解的
在使用ApplicationEvent和Listener快速实现业务解耦中提到了用Spring提供的观察者设计模式完成系统内部逻辑解耦.本文将介绍Google-Guava中的一种消息发布-订阅类库-- ...
- vue2-组件化开发
组件化 处理组件的边界情况 parent child ref provide&inject attrs &listener 快速原型开发 独立运行组件 处理组件的边界情况 parent ...
- Android视频编辑SDK--RDVECore来自锐动的无UI,高度抽象化API
1 RDVECore功能概述 RDVECore是锐动推出的无UI,高度抽象化API的视频编辑SDK,支持以下功能: 1.1 丰富的编辑功能 RDVECore包含了丰富的基础功能,对于编辑中的视 ...
- Guava-EventBus使用详解
在使用ApplicationEvent和Listener快速实现业务解耦中提到了用Spring提供的观察者设计模式完成系统内部逻辑解耦.本文将介绍Google-Guava中的一种消息发布-订阅类库-- ...
- 玩转 SpringBoot 2 快速整合 Listener
前言 本文主要介绍如何在SpringBoot 2 中使用 Listener 的快速搭建教程,阅读前需要你必须了解 Listener 的基础使用以及如何搭建 SpringBoot 项目. 快速演示操作 ...
- Listener监听器快速入门
目录 Listener 1. 概述 2.分类 3.代码演示 Listener 1. 概述 Listener 表示监听器,是 JavaWeb 三大组件(Servlet.Filter.Listener)之 ...
- idea缩写快捷键_IDEA快捷键大全 快速页面重构
常用的IDEA快捷键: 1.写代码时用Alt-Insert(Code|Generate-)可以创建类里面任何字段的getter与setter方法. 2.右键点击断点标记(在文本的左边栏里)激活速查菜单 ...
- JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署...
接上篇<JAVA WEB快速入门之环境搭建>,在完成了环境搭建后(JDK.Tomcat.IDE),现在是万事具备,就差写代码了,今天就来从编写一个JSP WEB网站了解JSP WEB网站的 ...
最新文章
- 复旦大学计算机专业直博,上海复旦大学计算机科学技术学院2016博士招生选拔办法...
- APP抓链接工具(Fiddler版)
- Flink从入门到精通100篇(八)-美团点评是如何在 Flink平台建立 实时数仓的?
- 成功解决softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be
- c语言24点程序,C语言24点问题
- Microsoft Updater Application Block 1.5.3 服务器端manifest文件设计 [翻译]
- 最近学到的「短链接」知识
- jgGrid扩展 显示查询用时
- 非线性动力学 matlab,非线性动力学matlab
- 可达性分析之三色标记算法详解
- PostgreSQL 中文手册
- python爬取本地文本中的成语_Python爬取成语:从3字到12字
- 互联网大数据时代下亚马逊是如何解决数据存储的
- 洛克菲勒写给儿子的38封信
- 免疫系统与冠状病毒之争:抗体水平下降时,T细胞会支持你
- php中文拼音模糊,两种php中文字符转拼音问题解决方法
- 天涯明月刀最新服务器,天涯明月刀手游手游开服表_天涯明月刀手游手游开服时间表_新服新区预告_第一手游网...
- 星形接法和三角形接法电压和电流关系
- 关于Go语言的底层,你想知道的都在这里!
- matlab导入excel数据算方差,基于MATLAB与EXCEL工具的均值-方差模型