100分求救:关闭浏览器让登录用户自动下线的功能

robyjeffding 2009-04-16 06:58:21
当用户登陆时,session保存了用户信息,登陆成功后,每个页面都有登出的链接,
点击此可以让用户下线,并且清除session中的值,但问题是:
如果不点击此链接,而是直接关闭浏览器的话,session中的值还是保存的,当我再次
打开一个浏览器时,用户重新登录就不行了,因为我做了重复登录的判断,一个用户不
能登录两次。我想达到的结果是:直接关闭浏览器用户自动下线,再次登录时,可以登录
上去。求救高手指点!
...全文
297 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你关闭浏览器,应该可以使 session失效。指关闭本页面,如果还有其它页面,那么 session还是没有失效。只有当超时时间到了,才失效。缺省是30分钟。你可以更改,再web.xml中设置
<session-config>
<session-timeout>5</session-timeout> //分
</session-config>
或者,创建session是直接设置
session.setMaxInactiveInterval(300);//秒

如果你只是要在页面关闭时作一些操作,直接用JavaScript的事件onunload就可以了。
如果你是在捕获session失效事件,那就比较复杂了。标准的做法是用session的监听类。
http://www.javaresearch.org/article/16478.htm
liu_zhaoqf 2009-04-17
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 hero272285642 的回复:]
获取关闭浏览器的动作事件,然后在事件发生后清除session。

function window.onbeforeunload()
{
if( event.clientX>document.body.clientWidth && event.clientY <0 || event.altKey )
{
//window.event.returnValue="确定要退出本页吗?";
//TO-DO 清楚session的操作
}
}
[/Quote]

这个我觉得可以。
MavenTalk 2009-04-17
  • 打赏
  • 举报
回复
再次登录时,可以登录上去

就去读取cookie,做判断,然后自动登录就可以了
MavenTalk 2009-04-17
  • 打赏
  • 举报
回复
或者

function window.onunload()
{
//TO-DO 清楚session的操作
}
mumu_java 2009-04-17
  • 打赏
  • 举报
回复
用cookies记录用户名。lz看看cookies的相关信息。
MavenTalk 2009-04-17
  • 打赏
  • 举报
回复
获取关闭浏览器的动作事件,然后在事件发生后清除session。

function window.onbeforeunload()
{
if( event.clientX>document.body.clientWidth && event.clientY<0 || event.altKey )
{
//window.event.returnValue="确定要退出本页吗?";
//TO-DO 清楚session的操作
}
}
FAT0708 2009-04-17
  • 打赏
  • 举报
回复
ie窗口关闭监听器
ninachen 2009-04-17
  • 打赏
  • 举报
回复
顶楼上
robyjeffding 2009-04-16
  • 打赏
  • 举报
回复
我做了浏览器的onunload事件,发送了loginout的请求,可以实现让用户自动下线,
但问题又来了,我点击一个链接到别的页面时,当前页面默认为关闭,他也会发送一个
loginout的请求,这样虽然我链接到了另一个页面,但session中的用户实际上已经
删除了?而我想只是在关闭浏览器时发送loginout请求,而不要点击链接时也发送
loginout请求,请问如何实现?有没有高手指点啊!不胜感激啊!
qybao 2009-04-16
  • 打赏
  • 举报
回复
在浏览器的onclose事件添加代码,给Server发送一个logout请求
设置Server的Session有效期,即timeout时间
guolimin1118 2009-04-16
  • 打赏
  • 举报
回复
一般所有页面关闭的话
session就会自动终止了
可能是你IE有缓存的缘故吗


望高手看下
sustbeckham 2009-04-16
  • 打赏
  • 举报
回复
给一个响应?
session.invalid();


算了 帮顶..
流星谜 2009-04-16
  • 打赏
  • 举报
回复
我这里有代码的。
流星谜 2009-04-16
  • 打赏
  • 举报
回复
用cookie保存userID,打开页面时查询cookie中的数据,根据id查找数据库,直接登录就可以了。
my145794 2009-04-16
  • 打赏
  • 举报
回复
先得用JavaScript调用window。close()事件 在该实践中使用<% 在这里销毁session %>
Dora 2009-04-16
  • 打赏
  • 举报
回复
帮顶

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧