Struts2的系统怎么做到同一帐号不能多人登陆?后登陆的可以把先登陆的挤掉?
来源:互联网 发布:淘宝便宜55寸彩电价格 编辑:程序博客网 时间:2024/05/29 13:49
Struts2的系统怎么做到同一帐号不能多人登陆?后登陆的可以把先登陆的挤掉?我用的session是这种,Map session = ActionContext.getContext().getSession();也没有通过sessionID来找到这个session的方法啊。别说啥session.clear()啊。总得先得到再clear吧。直接clear只会clear掉你自己的。不能强制别人下线。
思路是这样的。每个用户登陆成功的时候获取他的sessionId 并且把他的用户名当做key sessionId当做value来存到Application里 (也就是容器里。Application是一个容器共用一个) 具体实现: import com.opensymphony.xwork2.ActionContext; ActionContext ac = ActionContext.getContext(); Map sessionMap = ac.getSession(); Map applicationMap = ac.getApplication();//struts2 吧application这些对象做了封装 所以你对这个map操作也就是对Application操作。(如果你不习惯这样做 也可以用原始的方法) application..put(你的用户名, sessionId ); 并且要在session里存入你的用户名。 sessionMap.put("username", 你的用户名 ); --------------------------------------------- 如果有账号登录了。先去applicationMap里找一下。看这个账户有没有登陆 String lu = applicationMap.get(username); if(lu == null){ 在applicationMap 里存入相应信息。也就是上面的代码 } else{ 如果不等于空,就获取自己的sessionId 然后放入application里把之前的登陆的那个session覆盖掉。 application..put(username, mySessionId );这里的mySessionId 是自己的sessionId } 这样做了以后 你要修改你的程序,在每次请求的时候都去你的session里找到你的用户名(在登陆的时候已经保存了) Srtring username = sessionMap.get("username") 然后在application里找到 String sessionId = applicationMap.get(username ); 在从你session里获取mySessionId 和 sessionId 对比。 如果一样 就继续 如果不一样就跳转到登陆页面。 你可以不修改程序。而去写一个Interceptor,在里面拦截每个请求。这样更方便。 PS:上面的代码里用到struts2 封装的一些session。。等 如果用的不习惯 可以换一下,就写成原始获取session的方法也行。文章来自:http://zhidao.baidu.com/question/98349521.html
0 0
- Struts2的系统怎么做到同一帐号不能多人登陆?后登陆的可以把先登陆的挤掉?
- java web相同用户重复登陆,即用户唯一登录,后登陆挤掉先登录的,设置限制用户同时登陆人数
- web系统怎么识别登陆的帐户是同一台电脑登陆 用户绑定电脑
- Java Servlet实现同一账号后登陆挤掉前一个登陆(类似QQ)
- Java Servlet实现同一账号后登陆挤掉前一个登陆(类似QQ)
- 简单的Struts2登陆
- 简单的Struts2登陆
- Struts2登陆的Demo
- Struts2登陆的Demo
- Struts2登陆的Demo
- php的登陆系统
- 让管理员的帐号无须密码登陆
- 让管理员的帐号无须密码登陆
- cas4.2.7实现其它登陆系统和cas之间的认证,即其他登陆系统登陆后,cas不需要再次登陆,效果跟cas登陆一样
- java web中实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能)
- java web中实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能)
- java web中实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能)
- java web中实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能)
- POJ 2349 Arctic Network
- 【LeetCode】Multiply Strings
- iOS多线程编程之NSOperation和NSOperationQueue的使用
- windows.h和winsock2.h解决办法
- js 下载文件?
- Struts2的系统怎么做到同一帐号不能多人登陆?后登陆的可以把先登陆的挤掉?
- 乐视小米陷版权混战 多个业务存在竞争关系是主因
- Linux下java程序启动脚本(可做开机自启动Service脚本)
- OCP 1Z0 053 62
- 2维动态数组
- iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
- 判断用new申请内存是否成功
- loadjava报错Java: Not Found Error
- JAVA学习第3篇:实例方法和类方法