同时间同帐号只能登陆一次
来源:互联网 发布:mac如何添加网页收藏 编辑:程序博客网 时间:2024/03/29 02:27
第一种方法:
package redSess; import javax.servlet.ServletContext; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionMapping; public class sessionCheck { private static sessionCheck sessioncheck; public sessionCheck(HttpServlet servlet) { } public static sessionCheck getInstance(HttpServlet servlet) { if (sessioncheck==null) { sessioncheck=new sessionCheck(servlet); } return sessioncheck; } public void setSession(String userName,HttpServlet servlet,HttpSession session,ActionMapping mapping) { final ServletContext sc = servlet.getServletContext();//取得容器,容器中根据用户唯一标识userID存放session if (sc.getAttribute(userName) != null) { // 第二次登陆后第一次无效 ((HttpSession) sc.getAttribute(userName)).invalidate();// 清除第一次登陆的session System.out.println(session); } sc.setAttribute(userName, session);//放入当前最新session mapping.findForward("sessionDestroy") ; } }
MemberLogin:
Java代码
sessionCheck.getInstance(this.getServlet()).setSession(userName, servlet, session, mapping);
jsp:
JSP代码
<body ="sessionDestroy()"> <language="java" type="text/java"> sessionDestroy() { alert("连接超时,或帐号已在别处登陆,请查证后重新登陆"); location.href = "UserLogin.jsp" ; } </>
这样在两台电脑上后登陆的人用户就会把先登陆的给踢掉,但是暂时还没实现在同一台电脑上后登陆的用户把先登陆的踢掉的功能
上面是在后台实现的,如果要在JSP中做,直接appliction.getAttribute(userId),appliction.setAttribute(userId, session)就行
第二种:
同步Session控制
如果你希望限制单个用户只能登录到你的程序一次,Spring Security通过添加下面简单的部分支持这个功能。 首先,你需要把下面的监听器添加到你的web.xml文件里,让Spring Security获得session生存周期事件:
<listener> <listener-class>org.springframework.security.ui.session.HttpSessionEventPublisher</listener-class></listener>
然后,在你的application context加入如下部分:
<http> ... <concurrent-session-control max-sessions="1" /> </http>
这将防止一个用户重复登录好几次-第二次登录会让第一次登录失效。 通常我们更想防止第二次登录,这时候我们可以使用
<http> ... <concurrent-session-control max-sessions="1" exception-if-maximum-exceeded="true"/> </http>
第二次登录将被阻止。
0 0
- 同时间同帐号只能登陆一次
- php同个用户同时只能登陆一个, 后登陆者踢掉前登陆者
- 一个帐号一次登陆
- 一次同余方程
- 一次同余方程
- Spring Security学习一-控制同个帐号当前只能有一个登录
- 单一网站登录实现:单一用户,同时间唯一登陆
- 58同城头条帐号怎么申请?
- ucos iii时间片轮转只能在同优先级的任务间有效果
- 同一时间同一帐号只能登陆一
- 判断时间是不是同一周
- 解一次模互质同余方程组
- 一次郁闷的58同城经历
- POJ 1061 一次同余方程
- 同用的网站登陆界面
- 简单解决不同机器同帐号文件访问问题
- @RequestBody 只能与@RequestHeader同用 不能与@RequestParam (实现迭代函数部分方法只调用一次,之后传递下去)
- 同床同梦
- android sqlite使用
- Windows开发中一些常用的辅助工具
- 通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
- Android平台调用WebService详解
- 那些年,我们一起追过的足球
- 同时间同帐号只能登陆一次
- 【安卓开发】Layout Inflation不能这么用
- php(1)——基本语法
- C#小数保留N位
- ubuntu下安装boost库
- ORACLE中关于CONNECT,RESOURCE,DBA的授权
- android实用工具之ProGuard
- Android中如何处理未捕获的异常
- 一个项目中用到的50个SQL语句