2 hunterlew hunterlew 于 2016.03.11 22:42 提问

怎么检测到客户端关闭浏览器页面并销毁session? 10C

如题,系统要求某页面在同一时间只能一个人使用。目前只能提供一个jsp链接让用户退出的时候点击去销毁,但大部分用户会直接关浏览器吧。有什么方法可以检测到用户退出页面呢(暂不考虑掉电、死机等问题了)?
背景:因为系统页面是与实际硬件相连的,所以每一次只能让一个用户进来操作,否则就乱套了。

4个回答

harryqqai
harryqqai   2016.03.11 23:02

我的做法是客户端在规定的时间内没有操作行为就自动销毁SESSION,客户端重新登陆后方可使用。

hunterlew
hunterlew java中有相应的函数吗?
2 年多之前 回复
yzsunlight
yzsunlight   2016.03.11 23:24

放在Application 里判断即可

yzsunlight
yzsunlight 回复hunterlew: 用application类,去做管理。控制只能一个人操作
2 年多之前 回复
yzsunlight
yzsunlight 回复hunterlew: 用application类,去做管理。控制只能一个人操作
2 年多之前 回复
yzsunlight
yzsunlight 回复hunterlew: application 是应用程序级别的存储,你可以考虑用application处理你这块逻辑
2 年多之前 回复
hunterlew
hunterlew 没懂...
2 年多之前 回复
oyljerry
oyljerry   Ds   Rxr 2016.03.12 09:25

这个需要用超时机制 没法直接获取客户端信息

hunterlew
hunterlew 目前用的这个方法
2 年多之前 回复
showbo
showbo   Ds   Rxr 2016.03.12 11:07

父页嵌套一个全屏的iframe,然后操作的页面放到iframe里面,这样在iframe里面操作

父页添加onbeforeunload事件,如果用户刷新父页就提示是否退出,在onunload中用个同步ajax注销掉session

简单来说就是父页一定不允许刷新或者跳转操作,出现这个情况就直接注销掉。iframe赋值跳转之类的操作

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
怎么能关闭浏览器时候销毁session
统计当前在线人数的时候,如果客户端关闭了浏览器,就相当于退出了页面,需要销毁session值, 但好像只有IE支持: 其它浏览器不支持,怎么解决?   可以用 jQuery ,示例: $(document).unload( function () { alert("Bye now!"); } );   页面卸载的时候弹出一个警告框: jQuery 代
session控制管理及js关闭浏览器销毁session
因为目前项目是基于session来判断当前用户的详细情况,从一致性和可靠性来考虑,应该确保一个session一个用户。
php 关闭浏览器,销毁session
<br />看教程什么的 都说 浏览器关闭后session自动销毁,但是我在本地测试,发现程序关闭后session不能自动销毁,另外php.ini 默认是20分钟后session自动销毁,也没反应,希望懂得的出来解释 <br />Garbage Collection process对过期session销毁,但是,并非一过期就销毁,换句话说,它是以一定的几率进行的。如果一过期就销毁,当访问量大的时候,销毁session势必会占用相当的资源<br />自动销毁大概多长时间??还是按临时文件夹超过多少自动销毁??
实现关闭浏览器时清除session的方法
在默认情况下,session对象在关闭浏览器后并不是立刻被销毁,因此,为了考虑系统的安全性,在用户退出时,需要即刻清除session对象,防止他人盗用session对象中的信息。清除session对象内容的主要方法如下:(1)、removeAttribute()方法。该方法是用来删除session对象中保存的指定属性信息。例如:session.setAttribute("name", "ivers
浏览器关闭后,Session就销毁了吗?
话题:        当浏览器关闭后,Session就销毁了吗? 答案:         存在于浏览器上的唯一标识符JSESSIONID(sessionid)消失了,但是服务器中存放的sessionid并没有立马销毁。 分析:        我们知道Session是JSP的九大内置对象(也叫隐含对象)中的一个,它的作用是可以保存当前用户的状态信息,初学它的时候,认
退出页面自动清除session技巧
退出页面自动清除session技巧
laravel关闭浏览器释放session
打开laravel目录的 config->session.php 修改配置项目 这个配置项是session的过期时间,单位是分钟 'lifetime' => 120, 这个配置项是关闭浏览器时session是否消失,默认是false不消失,改为true就消失了 'expire_on_close' => true,
[ASP.net]用户窗口关闭后Session立即过期
我们知道WEB服务器的Session是与客户端浏览器线程关联的,如果用户关闭了浏览器,服务端创建的Session对象也将会失效,但是,IIS在处理Session时,默认配置下,并不回立即将用户Session失效,通常需要等待1分钟左右时间,在这1分钟期间,用户的Session信息依然存储在服务端内存,如果被非法劫持利用的话很容易造成安全问题,所以在某些特定的场合,需要用户在页面窗口/标签关闭后,立
关闭浏览器销毁session
今天在处理用户在线状态查看时,碰到一个问题:如果用户关闭浏览器,在IE下,通过处理 页面unload时,document.location可正常触发销毁session的跳转,但google的chrome却无效,那么,到底有没有方法使chrome也生效呢,of
Session会在浏览器关闭后消失吗?
通常情况下,当我们关闭浏览器再重新打开后,我们就需要再次进行登陆(如果没有进行下次自动登录之类的设置)。在Jav中(Session是通用的,这里以Java为例)有一种叫做Session机制(会话机制)来记录用户的登录信息。浏览器关闭之后,Session会被清除吗? Session是一种服务器端的对象,保存在服务器中。 每个Session 有一个唯一的Session id。 Session的超时也