作者 文章标题 请教goodlz…………………………




新手上路



贴子数量 : 4
注册日期 : 7/22/2002
在线情况 : 离线

  发表于: 7/23/2002 - 03:21
我碰到和下面同样的问题,我想知道这个问题究竟室怎么解决的,我在JIVE里找过,但是没有找到这个问题的解决办法,你能不能给一个具体一点的解决方法,先在这里谢过啦!

(以前的帖子)

用户登陆的问题?
--------------------------------------------------------------------------------
qiant - 5/28/2002 - 08:35 AM
大家好:
现在我碰到了一个问题,因为我们作了一套系统,有一个用户登陆页面,信息正确后才能登陆到系统,现在老总开了一个需求,要求同一个帐号不能同时登陆,也就是前一个不退出的话,第二个是不能进行登陆的,不知道这个在WebSphere中怎样实现,应该说用J2EE怎样作,主要是不能捕获用户非正常退出的事件,就是他将IE关闭了我怎样才知道,好像Session实现不了,希望大家帮忙,非常感谢!
--------------------------------------------------------------------------------
goodlz - 5/28/2002 - 09:27 AM
使用HttpSessionBindingListener,Jive中有例子。
--------------------------------------------------------------------------------
qiant - 5/28/2002 - 12:26 PM
请问,Jive中有例子是什么意思,例子在什么地方,我怎么也找不到,谢谢告诉一个详细的地址或方法,非常的感谢!!!
--------------------------------------------------------------------------------
goodlz - 5/28/2002 - 12:42 PM
一个经典的Java论坛软件
……不过可能还要找半天呢,我看还是找本详细点的Servlet书吧,上面应该有例子的。
--------------------------------------------------------------------------------
qiant - 5/29/2002 - 09:24 AM
谢谢大家,已经搞定了。


请问:究竟是怎么搞定的?????????

[编辑 - 7/23/02 作者: handcreate]
 
查看此人的个人资料 发送E-Mail给此人 编辑贴子 引用回复 搜索此人的所有贴子 给此人发送短消息




版主



贴子数量 : 416
注册日期 : 4/23/2002
在线情况 : 离线

  发表于: 7/23/2002 - 06:41
Hehe,我记得qiant在chinajavaworld的论坛上说过,好像就是HttpSessionBindingListener。
不知道你的JIVE是那个版本。
我的JIVE中有个显示在线人数的功能,就是用HttpSessionBindingListener接口的Session绑定功能。
你还是查一下Servlet的资料吧,一般都有用法介绍。

 

____________________

WebSphere的支持者,J2EE的爱好者,电子商务的探索者!
 
发送E-Mail给此人 编辑贴子 引用回复 查看此人的所有贴子 给此人发送短消息




新手上路



贴子数量 : 4
注册日期 : 7/22/2002
在线情况 : 离线

  发表于: 7/23/2002 - 07:38
非常感谢你的回复,
其实我也用HttpSessionBindingListener测试过,但是不能捕获客户端关闭浏览器这个事件,HttpSessionBindingListener中的valueUnbound是发生在session过期之后,而不是浏览器关闭之后,不知道你有没有好的办法去捕获浏览器关闭的事件,

我也知道可能这是一件不太现实的事,这是因为HTTP协议是种无状态的协议。 当客户端向服务器发出一个请求时,服务器会马上建立一个新的TCP/IP连接,在该会话结束后,如页面完全载入后,这个连接就关闭了,以后发生的事服务器也就不在知道了,但我还是想碰碰运气
 
发送E-Mail给此人 编辑贴子 引用回复 查看此人的所有贴子 给此人发送短消息




版主



贴子数量 : 416
注册日期 : 4/23/2002
在线情况 : 离线

  发表于: 7/24/2002 - 02:05
我现在没地方试,呵呵。过去用JIVE时,好像客户端那边一关窗口,服务器就能响应啊。

 

____________________

WebSphere的支持者,J2EE的爱好者,电子商务的探索者!
 
发送E-Mail给此人 编辑贴子 引用回复 查看此人的所有贴子 给此人发送短消息




新手上路



贴子数量 : 4
注册日期 : 7/22/2002
在线情况 : 离线

  发表于: 7/24/2002 - 02:48
你过去用的jive是什么版本

 
发送E-Mail给此人 编辑贴子 引用回复 查看此人的所有贴子 给此人发送短消息




版主



贴子数量 : 416
注册日期 : 4/23/2002
在线情况 : 离线

  发表于: 7/24/2002 - 02:51
2.0中文版

 

____________________

WebSphere的支持者,J2EE的爱好者,电子商务的探索者!
 
发送E-Mail给此人 编辑贴子 引用回复 查看此人的所有贴子 给此人发送短消息




新手上路



贴子数量 : 34
注册日期 : 4/30/2002
在线情况 : 离线

  发表于: 7/27/2002 - 11:22
哈哈哈哈,没有想到这个问题又有人讨论了,我来说一下。
上面说的都是对的,的确是用HttpSessionBindingListener这个接口,你可能忽略了一个总要的问题,请看下面:
例如是一个Servlet:
HttpSession session = response.getSession(true);
session.setMaxInactiveInterval(10); // 这个非常总要,也就是设定Session的最大活跃时间,可以参考http://java.sun.com/webservices/docs/1.0/api/javax/servlet/http/HttpSession.html
session.setAttribute(UserID, httpSessionBindingListener);

这样的话,系统会在该session不活跃时间达到10后,触发HttpSessionBindingListener接口中的valueUnbound()事件。

不过,不要高兴的太早,经过我的测试,这样的方法在Sun公司发布的JSWDK中是非常的准确,但是,在WSAD中非常的不准,到最后我自己手工的写了一套实现Session的程序,如果你感兴趣,你可以将你的Mail Address告诉我,我将这样的代码给你,如何?
嘻嘻!!!
 
编辑贴子 引用回复 查看此人的所有贴子 给此人发送短消息