HttpSessionBindingListener实现与应用

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

HttpSessionBindingListener接口有两方需要实现的方法:

public synchronized void valueBound(HttpSessionBindingEvent httpsessionbindingevent)

public synchronized void valueUnbound(HttpSessionBindingEvent httpsessionbindingevent)

Session创建的时候Servlet容器将会调用valueBound方法;Session删除的时候则调用valueUnbound方法.

具体应用可以跟踪每个在登录用户,记录相关的信息,以及在其超时的时候及时的删除相关的信息.

实例代码如下:

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

....

....

public synchronized void valueBound(HttpSessionBindingEvent httpsessionbindingevent){

//检查是否有效

if(!Valid()) return;

//检查信息是否已经存在.不存在则添加.

if(Info.online.containsKey(m_userId))

{

//记录日志信息

log.info("initial user context....");

UserOnlineStruct UOS = (UserOnlineStruct)Info.online.get(m_userId);

UOS.loginIp = uos.loginIp;

UOS.loginTime = uos.loginTime;

UOS.sessionId = uos.sessionId;

}

else{

Info.online.put(m_userId, uos);

}

}

public synchronized void valueUnbound(HttpSessionBindingEvent httpsessionbindingevent){

//检查是否有效

if(!Valid()) return;

//删除用户相关信息

//记录日志信息

log.info("destory user context....");

Info.online.remove(m_userId);

}

--------------------------------

如果你没有使用log4j的话,你可以把log.info()改为System.out.println()会得到同样的结果.

如果你想配置log4j,请点击日志记录的使用方法

如果你还有什么问题,请与我联系:webmaster@bcxy.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航