同一个帐号不能同时登录两次 上网找了很多资料,看不太明白,请各位大侠指教! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用spring Security 的Session 监控实现 楼主的意思是 同一个帐号不能反复登陆吧,就是 有人用这个帐号登陆时 禁止再次登陆。判断SEESION就可以了 监听器如何判断?public synchronized void sessionCreated(HttpSessionEvent se){ HttpSession session=se.getSession(); } public synchronized void sessionDestroyed(HttpSessionEvent se){ HttpSession session=se.getSession(); }如果是同一个页面,虽然注销了,好像SESSION是一样的.监听器没有东西. 不知道楼主说的哪种情况如果是在同一台机子上不能登录两次,那么用session就可以但是如果是这个账号不管在哪台机子上只能登录一次那在表里加一个字段,判断是否登录就好。 如何判断啊.请教了,session.isValid()?session.invalidate();之后,麻烦的事接着来.如果不这样,就session.removeAttribure();在session过期后又会出现 session is already invalidate;的错误,如何判断session是否可用呢?我用一个静态MAP保存SESSION.getId().+session然后 ID和用户名对应放在APPLICATION里.然后每次登录的人检查APPLICATION里用户名有没有相关的SID,如果有就到MAP里查询session.id,找到的话再对这个session进行removeAttribute操作. 结果过期了还是会出现session is already invalidate;的错误,这个错误显然是这样的.接着把新的SID+SESSION放到MAP,然后监听器里监听到会话过期了就把它从MAP里删除.创建了就放进会话 不同的浏览器/电脑上就不行了吧,还是要把登录信息记录到一个第三方的地方。比如数据表或者内存的结构里。spring 的Security也是有这个问题吧?xxbdgood luck 两个方案,一是保存所有用户集合,每次有登录的时候判断用户是否已存在;二是数据库加入标识字段或登录统计表。无论哪种,都要监听session销毁,即时删除用户或改变登录状态。 不用那么麻烦就直接取现在登录的用户名,比较再次登录的username就可以了 在Application作用域中做个List,每个用户登录就记录下来。会话过期或退出就删除,就可以实现单点登录。 模糊查询 struts2里关于文件下载一个问题 mysql中如何把本地的数据导入到远端服务器的数据库中去? 关于在struts中对数据库操作的封装问题! 如何取得用户从登录到关掉网页的在线时间?代码要怎么写,要写在哪里? hibernate新手提问 这个struts-config.xml文件配置有什么问题? 问一个关于axis返回大量数据的问题? 工具条问题 听同事说JNI很烂! 很容易出错! 是真的吗? 来着有分! 导入 maven 项目时出错 Java的xfire是个什么东西?
判断SEESION就可以了
public synchronized void sessionCreated(HttpSessionEvent se){
HttpSession session=se.getSession();
} public synchronized void sessionDestroyed(HttpSessionEvent se){
HttpSession session=se.getSession();
}如果是同一个页面,虽然注销了,好像SESSION是一样的.监听器没有东西.
如果是在同一台机子上不能登录两次,那么用session就可以
但是如果是这个账号不管在哪台机子上只能登录一次
那在表里加一个字段,判断是否登录就好。
session.isValid()?
session.invalidate();之后,麻烦的事接着来.如果不这样,就session.removeAttribure();在session过期后又会出现 session is already invalidate;的错误,
如何判断session是否可用呢?
我用一个静态MAP保存SESSION.getId().+session
然后 ID和用户名对应放在APPLICATION里.
然后每次登录的人检查APPLICATION里用户名有没有相关的SID,
如果有就到MAP里查询session.id,找到的话再对这个session进行removeAttribute操作. 结果过期了还是会出现session is already invalidate;的错误,这个错误显然是这样的.
接着把新的SID+SESSION放到MAP,
然后监听器里监听到会话过期了就把它从MAP里删除.创建了就放进会话
不同的浏览器/电脑上就不行了吧,还是要把登录信息记录到一个第三方的地方。比如数据表或者内存的结构里。spring 的Security也是有这个问题吧?xxbdgood luck
无论哪种,都要监听session销毁,即时删除用户或改变登录状态。