HttpSessionAttributeListener
2016-07-15 17:49
811 查看
HttpSessionAttributeListener
监听已登录用户
当进行session操作时,如下:就会调用本监听
session.setAttribute("username","tom");
session.removeAttribute("username");
import javax.servlet.annotation.WebListener; import javax.servlet.http.HttpSessionAttributeListener; import javax.servlet.http.HttpSessionBindingEvent; import com.stephen.utility.DateTool; @WebListener public class MyHttpSessionAttributeListener implements HttpSessionAttributeListener { @Override public void attributeAdded(HttpSessionBindingEvent event) { System.out.println(DateTool.date2String()+"->[MyHttpSessionAttributeListener]"+event.getName()+"="+event.getValue()+" attributeAdded"); } @Override public void attributeRemoved(HttpSessionBindingEvent event) { System.out.println(DateTool.date2String()+"->[MyHttpSessionAttributeListener]"+event.getName()+"="+event.getValue()+" attributeRemoved"); } @Override public void attributeReplaced(HttpSessionBindingEvent event) { System.out.println(DateTool.date2String()+"->[MyHttpSessionAttributeListener]"+event.getName()+"="+event.getValue()+" attributeReplaced"); } }
package com.nbrc.lddw.util; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionAttributeListener; import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.http.HttpSessionBindingListener; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.context.ApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import com.nbrc.lddw.interceptor.AuthorizeInterceptor; import com.nbrc.lddw.model.OnlineInfo; import com.nbrc.lddw.model.User; import com.nbrc.lddw.service.OnlineUserService; /** * * @author fox * @date 2009-02-09 * @description 已登录用户的监听 */ public class OnlineUserListener implements HttpSessionAttributeListener { private static Log log = LogFactory.getLog(OnlineUserListener.class); public void attributeAdded(HttpSessionBindingEvent hse) { log.info("value bound! make session info ..."); HttpSession session = hse.getSession(); ApplicationContext context = WebApplicationContextUtils.getRequiredWebApplicationContext(session.getServletContext()); OnlineUserService svr = (OnlineUserService)context.getBean("onlineService"); User u = null; if(session.getAttribute(AuthorizeInterceptor.USR_KEY)!=null) u = (User) session.getAttribute(AuthorizeInterceptor.USR_KEY); if(u!=null && svr.findByUserId(u.getId())==null){ OnlineInfo info = new OnlineInfo(); info.setSessionId(session.getId()); info.setUserId(u.getId()); svr.save(info); }else{ log.error("can't get user in session"); } } public void attributeRemoved(HttpSessionBindingEvent hse) { HttpSession session = hse.getSession(); ApplicationContext context = WebApplicationContextUtils.getRequiredWebApplicationContext(session.getServletContext()); OnlineUserService svr = (OnlineUserService)context.getBean("onlineService"); if(svr.findById(session.getId())!=null){ svr.removeById(session.getId()); } } public void attributeReplaced(HttpSessionBindingEvent se) { // TODO Auto-generated method stub } }
阅读更多
相关文章推荐
- HttpSessionListener, HttpSessionAttributeListener的用法及简单实例
- [置顶] 【Listener机制】HttpSessionListener和HttpSessionAttributeListener
- Listener监听器(HttpSessionListener,HttpSessionAttributeListener)
- Java下的Session监控:HttpSessionListener HttpSessionAttributeListener || HttpSessionBindingListener
- 使用HttpSessionListener和HttpSessionAttributeListener(1)
- HttpSessionListener, HttpSessionAttributeListener的用法
- HttpSessionBindingListener和HttpSessionAttributeListener区别 - gengkunpeng的专栏 - 博客频道 - CSDN.NET
- HttpSessionAttributeListener的例子
- HttpSessionBindingListener和HttpSessionAttributeListener区别
- HttpSessionListener 、HttpSessionAttributeListener以及HttpSessionBindingListener 的区别
- Listener之使用HttpSessionListener和HttpSessionAttributeListener
- HttpSessionListener, HttpSessionAttributeListener的用法
- HttpSessionListener, HttpSessionAttributeListener的用法
- HttpSessionBindingListener和HttpSessionAttributeListener
- HttpSessionListener, HttpSessionAttributeListener的用法
- Servlet 使用Filter HttpSessionListener HttpSessionAttributeListener实现webSession管理
- J2EE HttpSessionAttributeListener实现登录用户在线记录
- ServletContextListener、MyHttpSessionListener、ServletContextAttributeListener、对象绑定解绑、文件钝化活化
- HttpSessionListener,ServletContextListener, ServletContextAttributeListener,ServletContainer监听在线人数
- HttpSessionAttributeListener用法