在做一个B/S架构的聊天小项目,遇到的情况是这样的:
在首页点击“用户聊天”超链接,打开一个模式对话框(处于最顶端),页面为登陆页面,用户输入用户名和密码登陆后,进入聊天主界面(仍在模式对话框中)。
在聊天主界面的右侧显示在线用户列表,利用Ajax每隔3秒从servlet获取在线用户列表(这个用户列表以ConcurrentHashMap的形式存放在一个HttpSessionListener中)。
现在的问题是:
我想要在用户关闭聊天主界面这个模式对话框时,销毁session,从而除去监听器的ConcurrentHashMap中对应的用户(以sessionId为key),但就是在关闭时无法销毁,请高手告知如何解决呢?
下面这个方法在打开的不是模式对话框时是适用的,但是在模式对话框时失效:<script type="text/javascript">
window.onunload = function(){
//判断页面是关闭还是刷新,因为刷新也会触发unload事件
if(event.clientX<0&&event.clientY<0) {
document.write('<iframe width="0" height="0" src="chat/logout.jsp"></iframe><OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT>');
//无提示地关闭浏览器
document.all.WebBrowser.ExecWB(45,1);
}
}
</script>真的是想尽办法了,请各位高手一定帮我想想,给个思路也好啊,先谢谢了。
在首页点击“用户聊天”超链接,打开一个模式对话框(处于最顶端),页面为登陆页面,用户输入用户名和密码登陆后,进入聊天主界面(仍在模式对话框中)。
在聊天主界面的右侧显示在线用户列表,利用Ajax每隔3秒从servlet获取在线用户列表(这个用户列表以ConcurrentHashMap的形式存放在一个HttpSessionListener中)。
现在的问题是:
我想要在用户关闭聊天主界面这个模式对话框时,销毁session,从而除去监听器的ConcurrentHashMap中对应的用户(以sessionId为key),但就是在关闭时无法销毁,请高手告知如何解决呢?
下面这个方法在打开的不是模式对话框时是适用的,但是在模式对话框时失效:<script type="text/javascript">
window.onunload = function(){
//判断页面是关闭还是刷新,因为刷新也会触发unload事件
if(event.clientX<0&&event.clientY<0) {
document.write('<iframe width="0" height="0" src="chat/logout.jsp"></iframe><OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT>');
//无提示地关闭浏览器
document.all.WebBrowser.ExecWB(45,1);
}
}
</script>真的是想尽办法了,请各位高手一定帮我想想,给个思路也好啊,先谢谢了。
解决方案 »
- 我的javaWeb项目从公司带回来的,出息下面的异常怎么回事啊?哪位高手能帮我解答一下?
- struts2 画面传递中文参数乱码!!!
- HTTP Status 404 - Servlet action is not available ?调了3天了
- 调试程序时,老是出现这错!
- 关于tomcat配置问题!急!
- 用JAVA做一个公司内部用的即时通讯工具需要准备什么技术,谢谢.
- 请教一个对我来说很重要,对大家来说很菜的问题(高分送上)
- JSP用MYSQL做数据库,应该对MYSQL怎样配置
- 初学者的小问题~~~~~~~~~
- 请问为什么我写的WEB程序在JBUILDER9下面正常运行,而在RESIN3.0下面却出现空指针错误?
- 简单问题
- jsp实现日访问量统计的问题 在线等!!!
可以使用onunload事件.
期待答复。