MyException - 我的异常网
当前位置:我的异常网» Java Web开发 » csdn就没高手吗?csdn没落了吗?一个简单session有

csdn就没高手吗?csdn没落了吗?一个简单session有关问题都没人知道

www.MyException.Cn  网友分享于:2015-08-26  浏览:41次
csdn就没高手吗?csdn没落了吗?一个简单session问题都没人知道?
就是关闭页面时,关闭session的问题。
现要在关闭页面的时候将 "用户在线表 "中的状态改成 "不在线 "
我要在jsp页面关闭时清空session,
不清空的话, "用户在线表 "总显示在线状态,就不能再登录了
网上查了下发现几种方法不太好
1.利用onunload事件弹出一个新窗口来关闭session.
弊端:一些客户端IE设置会阻止弹出窗口,刷新好像也会运行onunload事件
2.要在关闭网站最后一个窗口时才关闭session
忘大虾能给出完美解决方案,最好有列子或源代码参考~
谢谢了啊~
明天要再解决不了,经理非把我T了不可~
在线等~急急~
3.希望方法能适用于所有浏览器
4.本网站要求session超时为30分钟
5.cookie客户端可能会关闭
6.   要能解决   启动任务管理器,选中IE进程,强制终了,关机,拔电源等等物理手段
    也要能清空session
7.不能让客户在关ie后再等30分钟登录,要能马上重新登录

------解决方案--------------------
up
------解决方案--------------------
不怎么好弄吧
本来也想这么弄来,后来发现有点困难。
等待高手出现!
------解决方案--------------------
想不到完美解决方案 还觉得你的要求得继续增加一项:
那就是关闭浏览器的时候,你得判断用户有没有开着其他的窗口,用户有没有用多种浏览器同时在访问,如果你在关闭浏览器就让session失效,那么用户会很郁闷,因为他只是关了一个页面而已。
------解决方案--------------------
既然是这么"简单",你自己怎么解决不了?
------解决方案--------------------
为什么不在登陆之前清空session呢?
还有CSDN做到了,你给他写封信让他给你个方案

------解决方案--------------------
退出网页时3 加这段代码:
session.invalidate();
这样退出时就把网页session清空了
------解决方案--------------------
楼上说的对,调用session.invalidate();一定会清除SESSION的,所以你想想怎么调用就是了。
------解决方案--------------------
这问题好简单呀
首先你要判断 用户关闭的是第几个网页?
For_suzhen(不懂装懂) 的办法可以呀 登陆前清空session


------解决方案--------------------
这个建议用AJAX吧
如果某用户30分钟内不发一条信息过来
就删了她的SESSION
------解决方案--------------------
session.validate()
------解决方案--------------------
这个问题理论上面好象是没有办法做到

在客户端发送消息,当非正常关闭时就没有效果了


------解决方案--------------------
//拔电源
这不太好处理吧,突然间断电,程序还没来得及反应,怎么处理?
------解决方案--------------------
和我刚刚解决的问题一模一样,如果我直接关闭IE的话,服务器是不会知道的
我的做法是在session之外用用户ID 维护另外一套session信息HashMap,记录IP , sessionID
且这个信息会在session timeout的时候删除。

非正常退出后,再次登陆会依次比较:同ip的话,就直接进入了,换机器的话则需要额外的认证。

------解决方案--------------------
1.利用onunload事件弹出一个新窗口来关闭session.

你非要弹出新窗口啊?
你既然都知道用onunload来监听, 就不会在onunload里提交一个表单给SERVLET? 然后在SERVLET里调用session.invalidate();

思维要发散
------解决方案--------------------
请不要用“简单”来侮辱你自己
------解决方案--------------------
两个思路,其他的都不能完美解决
1. 用ajax,每隔一段时间(比如30秒)就把登录ID传给服务器.没收到的话就认为他已下线.那该怎么处理就怎么处理.
2.第二次登录就直接踢掉上一次登录(我见过的大多数系统都采用这种方式.)

决不应该用session来判断一个用户是否登录.session是用来保存一个用户临时数据的.不是用来指明用户是否存在的.如果用户关了浏览器,那么他的session id自然就没有了,对应的session在设定的存活期过后(比如10分钟)就会自动销除.当然正常情况你也可以要求用户点退出按钮,在这里删掉session以节约资源.
------解决方案--------------------
ajax可以实现无刷新的与服务器交互,这样就不用弹出新窗口了
onunload = remove()

function remove()
{
var url = "/servlet/ajaxShowActionServlet/ ";
var method = "post ";
var param = "flag=remove&fileName= "+$(fileName).value;

文章评论

程序员都该阅读的书
程序员都该阅读的书
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
那些争议最大的编程观点
那些争议最大的编程观点
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
程序员的鄙视链
程序员的鄙视链
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
如何成为一名黑客
如何成为一名黑客
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
我是如何打败拖延症的
我是如何打败拖延症的
总结2014中国互联网十大段子
总结2014中国互联网十大段子
 程序员的样子
程序员的样子
老程序员的下场
老程序员的下场
中美印日四国程序员比较
中美印日四国程序员比较
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
鲜为人知的编程真相
鲜为人知的编程真相
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
我的丈夫是个程序员
我的丈夫是个程序员
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
Java程序员必看电影
Java程序员必看电影
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
一个程序员的时间管理
一个程序员的时间管理
10个调试和排错的小建议
10个调试和排错的小建议
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
旅行,写作,编程
旅行,写作,编程
编程语言是女人
编程语言是女人
每天工作4小时的程序员
每天工作4小时的程序员
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
程序员和编码员之间的区别
程序员和编码员之间的区别
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
代码女神横空出世
代码女神横空出世
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有