【JavaEE企业应用实战学习记录】sessionListener
2016-10-06 09:54
519 查看
1 package sanglp.servlet; 2 3 4 import javax.servlet.ServletContext; 5 import javax.servlet.annotation.WebListener; 6 import javax.servlet.http.HttpSession; 7 import javax.servlet.http.HttpSessionEvent; 8 import java.util.Hashtable; 9 import java.util.Map; 10 11 /** 12 * Created by Administrator on 2016/10/6. 13 */ 14 @WebListener 15 public class HttpSessionListener implements javax.servlet.http.HttpSessionListener { 16 17 //当用户与服务之间开始session时触发该方法 18 @Override 19 public void sessionCreated(HttpSessionEvent httpSessionEvent) { 20 HttpSession session=httpSessionEvent.getSession(); 21 ServletContext application=session.getServletContext(); 22 //获取sessionId 23 String sessionId=session.getId(); 24 //如果是一次新的会话 25 if(session.isNew()){ 26 String user=(String)session.getAttribute("user"); 27 //未登陆用户当游客处理 28 user=(user==null)?"游客":user; 29 Map<String,String> online=(Map<String, String>) application.getAttribute("online"); 30 if(online==null){ 31 online=new Hashtable<String,String>(); 32 //将用户在线信息放入Map中 33 online.put(sessionId,user); 34 application.setAttribute("online",online); 35 } 36 } 37 } 38 39 //当用户与服务器之间session断开时触发该方法 40 @Override 41 public void sessionDestroyed(HttpSessionEvent httpSessionEvent) { 42 HttpSession session=httpSessionEvent.getSession(); 43 ServletContext application=session.getServletContext(); 44 String sessionId=session.getId(); 45 Map<String,String> online=(Map<String,String>)application.getAttribute("online"); 46 if(online!=null){ 47 //删除该用户的在线信息 48 online.remove(sessionId); 49 } 50 application.setAttribute("online",online); 51 } 52 }
相关文章推荐
- 【JavaEE企业应用实战学习记录】MyGetAttributeListener
- 【JavaEE企业应用实战学习记录】struts2登录
- 【JavaEE企业应用实战学习记录】struts配置文件详细解析
- 【JavaEE企业应用实战学习记录】requestListener
- 【JavaEE企业应用实战学习记录】getConnListener
- 【JavaEE企业应用实战学习记录】logFilter
- 【JavaEE企业应用实战学习记录】authorityFilter
- 【JavaEE企业应用实战学习记录】servlet3.0上传文件
- 【JavaEE企业应用实战学习记录】struts2实现登录并获取各个范围的数据
- 【JavaEE企业应用实战学习记录】struts国际化
- 【JavaEE企业应用实战学习记录】optiontransferselect实现两个列表选择框
- 【JavaEE企业应用学习记录】验证配置
- 《Spring 3.x 企业应用开发实战》学习笔记 第三章 IoC容器概述 3.2 相关Java基础知识 类装载器 反射机制
- 学习《spring 3.x企业应用开发实战》之基于@AspectJ和Schema的AOP
- 学习《spring 3.x企业应用开发实战》之任务调度和异步执行器
- 学习《spring 3.x企业应用开发实战》之Spring的事务管理
- 学习《spring 3.x企业应用开发实战》之整合其他ORM框架
- 学习《spring 3.x企业应用开发实战》之IOC容器概述
- 《Spring 3.x 企业应用开发实战》学习笔记 第三章 ApplicationContext和BeanFactory区别
- 《Spring 3.x 企业应用开发实战》学习笔记 第四章