8 个解决方案
#1
友情绑定 一下 。另:可以把你的需求提出来,上面的做法 不太符合常规,这是客户端去控制服务器 ,不提倡这种做法
#2
可以让服务器去检查上次访问时间,超过一定时间认为已退出,销毁session。
如果非要用客户端控制的话,监听到onbeforeunload发送ajax请求销毁session,页面加载时再去请求新建session有点得不偿失。
如果非要用客户端控制的话,监听到onbeforeunload发送ajax请求销毁session,页面加载时再去请求新建session有点得不偿失。
#3
当用户关闭浏览器,又重新打开,想再次登录, 在这种情况下,上一个session还没销毁,而我使用了HttpSessionAttributeListener监听session关闭后移除ServletContext域里用户的登录状态。 如果关闭浏览器,但session没有销毁,再次登录时,就提示用户已在线了
#4
js 判断不了 退出当前网站。
服务器 设置session 过期时间(设置短一点) 和 session end 事件去处理
服务器 设置session 过期时间(设置短一点) 和 session end 事件去处理
#5
你不能判断有session就自动登入吗?
#6
onbeforeunload 事件不只是监听关闭窗口,刷新也是会被监听的;你要么在onbeforeunload 事件函数里判断是关闭还是刷新;要么就用其他的监听事件
#7
一个判断页面是否真的关闭和刷新的好方法:
window.onbeforeunload=function (){
if(event.clientX>document.body.clientWidth && event.clientY < 0 || event.altKey){
alert("你关闭了浏览器");
}else{
alert("你正在刷新页面");
}
}
window.onbeforeunload=function (){
if(event.clientX>document.body.clientWidth && event.clientY < 0 || event.altKey){
alert("你关闭了浏览器");
}else{
alert("你正在刷新页面");
}
}
#8
session自己是会自动过期的,设置过期时间就好了
#1
友情绑定 一下 。另:可以把你的需求提出来,上面的做法 不太符合常规,这是客户端去控制服务器 ,不提倡这种做法
#2
可以让服务器去检查上次访问时间,超过一定时间认为已退出,销毁session。
如果非要用客户端控制的话,监听到onbeforeunload发送ajax请求销毁session,页面加载时再去请求新建session有点得不偿失。
如果非要用客户端控制的话,监听到onbeforeunload发送ajax请求销毁session,页面加载时再去请求新建session有点得不偿失。
#3
当用户关闭浏览器,又重新打开,想再次登录, 在这种情况下,上一个session还没销毁,而我使用了HttpSessionAttributeListener监听session关闭后移除ServletContext域里用户的登录状态。 如果关闭浏览器,但session没有销毁,再次登录时,就提示用户已在线了
#4
js 判断不了 退出当前网站。
服务器 设置session 过期时间(设置短一点) 和 session end 事件去处理
服务器 设置session 过期时间(设置短一点) 和 session end 事件去处理
#5
你不能判断有session就自动登入吗?
#6
onbeforeunload 事件不只是监听关闭窗口,刷新也是会被监听的;你要么在onbeforeunload 事件函数里判断是关闭还是刷新;要么就用其他的监听事件
#7
一个判断页面是否真的关闭和刷新的好方法:
window.onbeforeunload=function (){
if(event.clientX>document.body.clientWidth && event.clientY < 0 || event.altKey){
alert("你关闭了浏览器");
}else{
alert("你正在刷新页面");
}
}
window.onbeforeunload=function (){
if(event.clientX>document.body.clientWidth && event.clientY < 0 || event.altKey){
alert("你关闭了浏览器");
}else{
alert("你正在刷新页面");
}
}
#8
session自己是会自动过期的,设置过期时间就好了