对于用户登录,我想做像做到不能重复登录,网上说放在session中,那两台机器呢?还有的说放在application中,那访问的人数达到一定的数量呢?岂不悲剧了!嗯,我想在数据库里弄一个字段,online,0代表下线,1代表上线,但如果用户没有按照流程正常退出,而是直接关掉浏览器或是断电、死机等意外发生,怎么实现一个监听对其数据库中的数据进行更改。
望各位大神各点实际的提示!由衷感谢!
望各位大神各点实际的提示!由衷感谢!
解决方案 »
- 行转列后,在jsp中如何修改数据
- 初始化密码的问题
- 请教!关于结果集移动的问题
- 请问这是什么错误
- JavaScript里面漂浮广告图标问题
- Could not find a getter for subjectId in class com.mon.po.Subject
- Tomcat打报表报错NullPointerException.求解
- Blob pass=rset.getBlob(1)来取数据库中varchar2类型的内容吗?谢谢!
- 在ORACLE的JDBC中Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)的乱码问题,急
- 关于层被遮盖的问题
- jsp页面from的post数据,怎么递交给另一个JSP页面接收。
- 请打大家帮我看一下struts2 action 跳转问题。提示:404 谢谢 !
用session好,对于单纯的用户登录,不可能用到application.对于你所说的两台机器,每个用户的session都不同,所以不用担心,如果相同,可以向qq那样的实现操作一样了
2、session何时被删除
综合前面的讨论,session在下列情况下被删除a.程序调用HttpSession.invalidate();或b.距离上一次收到客户端发送的session id时间间隔超过了session的超时设置;或c.服务器进程被停止(非持久session)http://beyond99.blog.51cto.com/1469451/543282
if(map.get("xxx")!=null)
不能登陆
else
map.put("xxx",userSession)
用户的每一次访问你都要去数据库查询并验证?
比较好的做法是存在application或是static一个map。
一般是后登陆的踢掉先登陆的。因为你根据无法准确地知道客户端什么时候下线了(比如死机、或断电)。不过用长连接可以解决这个问题,但从技术上来说要麻烦一些。
这个等待时间多长?你设置session多长?一分种?那我操作时稍微延迟一点就自动退出了,十分钟?那我非正常退出是不是要等十分钟才能再次登陆?所以还是用踢的方式比较好,QQ也是用的踢的方式嘛。