【JavaEE企业应用实战学习记录】sessionListener

 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 }
时间: 2024-08-05 19:36:55

【JavaEE企业应用实战学习记录】sessionListener的相关文章

【JavaEE企业应用实战学习记录】optiontransferselect实现两个列表选择框

1 <%@ page contentType="text/html; charset=GBK" language="java"%> 2 <%@taglib prefix="s" uri="/struts-tags"%> 3 <html> 4 <head> 5 <meta http-equiv="Content-Type" content="te

【JavaEE企业应用实战学习记录】Filter

1 package sanglp.servlet; 2 3 import javax.servlet.*; 4 import javax.servlet.annotation.WebFilter; 5 import javax.servlet.http.HttpServletRequest; 6 import java.io.IOException; 7 8 /** 9 * Created by Administrator on 2016/10/5. 10 */ 11 @WebFilter(fi

【JavaEE企业应用实战学习记录】struts配置文件详细解析

1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <!DOCTYPE struts PUBLIC 4 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 5 "http://struts.apache.org/dtds/struts-2.3.dtd"> 6 7 <!--strut

【JavaEE企业应用实战学习记录】requestListener

1 package sanglp.servlet; 2 3 import javax.servlet.*; 4 import javax.servlet.annotation.WebListener; 5 import javax.servlet.http.HttpServletRequest; 6 7 /** 8 * Created by Administrator on 2016/10/5. 9 */ 10 @WebListener 11 public class RequestListen

【JavaEE企业应用实战学习记录】getConnListener

Listener:当Web应用在Web容器中运行时,Web应用内部会不断地发生各种事件,如Web应用被启动.Web应用被停止,用户Session开始,用户session结束.用户请求到达等,这些对Web事件对开发者是透明的. ServletAPI提供了大量的监听器来监听Web应用的内部事件,从而允许当Web内部事件发生时回调事件监听器内的方法. 使用步骤:定义Listener实现类 通过Annotation或在web.xml文件中配置Listener. 常用Listener类: ServletC

【JavaEE企业应用实战学习记录】authorityFilter

1 package sanglp.servlet; 2 3 import javax.servlet.*; 4 import javax.servlet.annotation.WebFilter; 5 import javax.servlet.annotation.WebInitParam; 6 import javax.servlet.http.HttpServletRequest; 7 import javax.servlet.http.HttpSession; 8 import java.

【JavaEE企业应用实战学习记录】MyGetAttributeListener

1 package sanglp.servlet; 2 3 import javax.servlet.ServletContext; 4 import javax.servlet.ServletContextAttributeEvent; 5 import javax.servlet.ServletContextAttributeListener; 6 import javax.servlet.annotation.WebListener; 7 8 /** 9 * Created by Admi

【JavaEE企业应用实战学习记录】struts国际化

1 <%-- 2 Created by IntelliJ IDEA. 3 User: Administrator 4 Date: 2016/10/6 5 Time: 16:26 6 To change this template use File | Settings | File Templates. 7 --%> 8 <%@ page contentType="text/html;charset=UTF-8" language="java" %

【JavaEE企业应用实战学习记录】struts2登录

1 <%-- login.jsp 2 Created by IntelliJ IDEA. 3 User: Administrator 4 Date: 2016/10/6 5 Time: 16:26 6 To change this template use File | Settings | File Templates. 7 --%> 8 <%@ page contentType="text/html;charset=UTF-8" language="ja