如何在关闭页面时清空session ?老问题~急~急~
我要在jsp页面关闭是清空session,网上查了下发现几种方法不太好 
 1.利用onunload事件弹出一个新窗口来关闭session. 
 弊端:一些客户端IE设置会阻止弹出窗口,刷新好像也会运行onunload事件 
 2.要在关闭网站最后一个窗口时才关闭session 
 忘大虾能给出完美解决方案,最好有列子或源代码参考~ 
 谢谢了啊~ 
 明天要再解决不了,经理非把我T了不可~ 
 在线等~急急~
------解决方案--------------------还是使用onunload,不过不弹出窗口,而是使用xmlhttprequest异步(ajax)提交请求到服务器,服务器销毁session
------解决方案--------------------客户端的事件是靠不住的(如非法关机,网络连接中断等),你应当结合cookie来实现,cookie可以设置关闭页面就过期的(默认值),因此,你应当先通过cookie判断在处理Session。
------解决方案--------------------实在不放心客户端,干脆禁止cookie,统统使用 URL 重写来传递sessionID 保持会话,一了百了。
------解决方案--------------------javascript能干的JSP也能 需求写死了!
------解决方案--------------------没有Cookie,你的Session也就没有用了。Session是依赖 Cookie的, 
 asp.net里倒是有禁止cookie的方法,是将cookie放到了url里
------解决方案--------------------当然,不管出现什么意外情况,要在很短的时间内清空也是可以的。那就是定时器。 
 你想一下网站被人放木马的情况你就能知道怎么做了
------解决方案--------------------web.xml 
  <!--session过期时间设成1分钟-->  
  <session-config>  
      <session-timeout> 1 </session-timeout>  
  </session-config>    
 all.jsp 
  <!--所有jsp页上加如下代码-->  
  <script>  
 var s=30,x=0,rurl= "remain.jsp "; 
 //30分钟内30秒连一次网站,保证session有效 
 function f(){ 
 var httpRequest = new ActiveXObject( "microsoft.xmlhttp "); 
 httpRequest.open( "GET ", rurl, false); 
 httpRequest.send(null); 
 x++; 
 if(x <60){ 
   setTimeout( "f ",s*1000); 
 } 
 } 
 f(); 
  </script>    
 remain.jsp 
  <!--无意义页,只为f()提供一个连接页-->  
  <html>  </html>
------解决方案--------------------能不能这样 如果你定义的session不活动时过期时间为60分钟 能不能在第59分钟时候去修改用户状态
------解决方案--------------------我写的是模拟30分钟超时的   
 如果要session-timeout设为30分钟,这个问题根本就是没法解决的,你难道能让母鸡下出鸭蛋?钻死牛角尖的家伙
------解决方案--------------------想不通? 
 Session虽然是在服务器端,但页面访问过后是与服务器端打开的,也就是说,服务器不知道下一次是否是一个人。靠什么记住是一个人?Session 传递一个SessionID到客户端,就是这个Cookie值记住的, 
 你可以alert(document.cookie)看看你的页面是否有一长串的数字
------解决方案--------------------你不能全部捕捉到客户端关闭IE的方法,最简单例子遨游的标签页双击关闭就捕获不到。
------解决方案--------------------好贴,关注...   
 希望把你给顶上去...