站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题关于Session监听

关于Session监听

摘要: 关于Session监听


本人目前要对一个系统进行修改,要求把每个用户注销的动作(包括session超时)写入系统日志及记录在线用户名单。以前没弄过,查了一下资料,大概知道是要用HttpSessionBindingListener来实现,不过有几个不明白的地方:很多资料上都有“当你执行Session.addAttribute(String,Object)的时候,把一个实现了HttpSessionBindingListener接口的类加入为Attribute,Session会通知你的类,调用你的valueBound方法。”这句不太理解,请大侠给解释解释吧?


学习ing


这就是说,当你调用Session.addAttribute(String,Object)时,会执行你实现HttpSessionBindingListener接口的类的valueBound方法。
当然了,前提是你实现HttpSessionBindingListener接口的类配置正确


应该用HttpSessionListener。


“把一个实现了HttpSessionBindingListener接口的类加入为Attribute”这句作何理解?一般不就是把用户实体类的某个属性如username加入Attribute吗,怎么是类呢?
我照着http://blog.csdn.net/d80/archive/2004/06/16/17260.aspx做了一个例子,设置了session的有效期为1秒,但是后台打印除了的记录却显示并不准确,一般都在几十秒后才打印出用户退出的提示;还有,这个例子怎么没有在web.xml里声明监听器呢?


supergoalcn(Supergoal) 兄弟,用HttpSessionListener的好像只要访问页面就会被监听到的吧,我需要记录已登录的用户


看书ing,原来HttpSessionBindingListener是不用配置web.xml的。


JAVA 学习QQ群 30544110


再来一个 30240288



后台打印出的结果:

用户1登入系统 2006-09-28 20:53:16
用户2登入系统 2006-09-28 20:53:20
用户3登入系统 2006-09-28 20:53:24
用户1退出系统 2006-09-28 20:54:13
用户3退出系统 2006-09-28 20:54:13
用户2退出系统 2006-09-28 20:54:13

我设置了session.setMaxInactiveInterval(1),照理说应该按顺序退出才对,可是结果却是3个用户同时退出,而且时间间隔远不止1秒,郁闷啊。。


↑返回目录
前一篇: 关于页面URL地址问题
后一篇: 有什么函数可以将2006-9-5变换成200609的转变呢,请帮忙