ssession监听器 .
session监听器 .
分类: java 2006-12-05 16:48 1288人阅读 评论(1) 收藏 举报
1.HttpSessionBindingListener:
在把实现了该接口的对象往session.setAttribute里面放的时候触发valueBound
时间,在session.invalidate()或超过时间限制的时候触发valueUnbound,该监听器不要配置web.xml。
2.
HttpSessionAttributeListener :
任何进行session.setAttribute的时候分别触发attributeAdded(),attributeReplaced()事
件。在session.removetAttribute的时候触发attributeRemoved()。要在web.xml配置Listener 。
3.
HttpSessionListener :
在session创建的时候就触发sessionCreated,在session.invalidate()或超过时间限制的时候触发
sessionDestroyed。要在web.xml配置Listener 。
例子:
web.xml配置:
<!-- 用户注销session监听器 :必须放在com.huawei.bme.web.context.SessionListener之
前-->
<listener>
<listener-class>
com.huawei.common.listener.LoginSessionListener
</listener-class>
</listener>
<listener>
<listener-class>com.huawei.bme.web.context.SessionListener</listener-class>
</listener>监听器处理类:
public class LoginSessionListener implements HttpSessionListener
{
public void sessionCreated(HttpSessionEvent event)
{
}
public void sessionDestroyed(HttpSessionEvent event)
{
UserProfile userProfile = (UserProfile)event.getSession().getAttribute
(Constant.USER_LOGIN_MSG);
String userAccount = "";
String loginIp = "";
if (null != userProfile)
{
userAccount = userProfile.getUserAccount();
System.out.println("userAccount:"+userAccount);
loginIp = event.getSession().getAttribute("LoginIp").toString();
System.out.println("loginIp:"+loginIp);
try
{
insertUserLogoutLog(userAccount, loginIp);
}
catch (PortalException e)
{
DebugLogFactory.error(this.getClass(),
"insertUserLogoutLog error", e);
}
}
}