java session 难题 呵呵!你想得已经比较全面了。结论,在线人数只能是近似的数量,不会是精确的。 所以就别浪费感情了!OVER 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把Session过期设为3分钟,客户端每隔2分钟用Ajax向服务端发送一个访问Session的请求,系统关闭时清除Session,如遇非正确退出,则Session过期后会自动清除。 过期时间和发送请求的时间可根据具体情况或精度要求进行调整。 把session过期设为多长时间,应该具体问题具体分析,不是死时间哟 程序里面可以手动删除session吗?session中的attribute字段为空后不是依旧存在的吗?? 情况太复杂,基本的就是设置session的最大空闲时间,也可以加关闭浏览器像服务器发送信息的,但是好多因素,有人是点X关闭,有人习惯alt+f4,有人点了文件菜单在按退出,有嫌麻烦直接关机拔电源的。总之有个基础应对方法,其他的仁者见仁智者见智。 我给一个比较有趣的做法,当然很耗费资源。那就是持续连接。你做一个包含页面,用ajax/iframe里面调用。让每个可访问的页面都调用这个。这个页面的代码大致如下。while(true){ try{ out.println(); // 输出一个空行 out.flush(); // 这一句必须写 // 检查当前在线人员,确保它没有被删掉 check(session); try{ Thread.sleep(10); // 休眠一下吧 }catch(Exception ex){} }catch(Exception ex){ // 一旦发现异常,则证明此用户已经离开当前页面 // 从在线人员里面删掉当前人员 remove(session); }}我们在check里面要判断用户是否已经有1个持久连接在工作,以免用户同时打开多个页面造成多个持久连接这个方法可以在用户和服务器之间保持一个持久的连接,一旦异常,则该用户就离开了这个页面。此方法可以最大限度的精确在线人员数,但是也非常耗费系统资源。 思路借鉴于网游。他们就是持续的连接。 最新的思路,请看这里 http://www.java2000.net/viewthread.jsp?tid=647或者我在CSDN的博客 http://blog.csdn.net/java2000_net/archive/2008/02/10/2087529.aspx 请问如何通过java代码验证引用类型与值类型的区别 j2ee开发应该采用ajax哪种框架较合适?? 基于SNMP协议网管软件群10500691欢迎加入 求助!pdf在线浏览思路。 【高手指点迷津】J2EE是什么? 在线等待 tomact的启动问题 研究生毕业课题:请诸位帮忙想一下 J2EE的环境变量怎么设置?3x ssm框架连接mysql8.0.12,运行没有出错,但测试查询总没有数据显示 Hibernate简单问题,请教思路 在线等:::如何对使用struts框架的应用生成对seo友好的url?
try{
out.println(); // 输出一个空行
out.flush(); // 这一句必须写
// 检查当前在线人员,确保它没有被删掉
check(session);
try{
Thread.sleep(10); // 休眠一下吧
}catch(Exception ex){}
}catch(Exception ex){
// 一旦发现异常,则证明此用户已经离开当前页面
// 从在线人员里面删掉当前人员
remove(session);
}
}我们在check里面要判断用户是否已经有1个持久连接在工作,以免用户同时打开多个页面造成多个持久连接这个方法可以在用户和服务器之间保持一个持久的连接,一旦异常,则该用户就离开了这个页面。此方法可以最大限度的精确在线人员数,但是也非常耗费系统资源。 思路借鉴于网游。
他们就是持续的连接。
http://www.java2000.net/viewthread.jsp?tid=647
或者我在CSDN的博客 http://blog.csdn.net/java2000_net/archive/2008/02/10/2087529.aspx