Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
HttpSessionBindingListener实现与应用

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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,请点击日志记录的使用方法

如果你还有什么问题,请与我联系:[email protected]




相关文章

相关软件