基于struts单用户登录

我弟弟正在搞一个基于struts实现单用户登录的功能,他整理了一个他实现的思路,我还没来得及细看,先分享给大家,看看有没有什么问题和改进的地方呵呵。

 

以下是我弟弟整理的:

 

 

基于struts单用户登录
========================
实现效果:
    当同一帐号在不同的地点,同时在线登录第二次时,那么此时第一次登录的用户做任何操作都会跳转至指定页面。。。

伪代码:

1. 监听器:(Listener)
  监控对session值操作:(让类 实现 HttpSessionAttributeListener 接口)
    1.1 当对session赋值时,进行判断:
            if( 当前操作中的键 为“登录监听”){
                则把该用户加入到在线用户列表中。
            }
    1.2 当对session的值做移除操作时,进行判断:
            if( 当前操作中的键 为“登录监听”){
                if(当前用户在在线列表中,并且,列表中的sessionId是否和当前的sessionID相等){
                    把 当前用户从全局 列表 中移除
                }
            }

2. 过滤器(Filter)

    过滤所有操作:
    2.1. 当做过滤操作时,
        if( 该操作不为空 ,并且 ,该操作不为空字符串 并且, 该操作是否不为登录 ){
            if( session 中 存在标识 “用户名”[因为用户名是不允许重复] ){
                if( 在线列表中 存在当前用户 ){
                    if( 当前的sessionID 和 在线列表中 以当前用户为标识的 sessionID 相等 ){
                        通过过滤器
                    } else {
                        销毁session
                      直接跳转到指定页面
                    }
                } else {
                    销毁session
                    直接跳转到指定页面
                }
          } else {
              直接调转到指定页面
          }
        } else {
            通过过滤器
        }
       
3. 在线用户列表: (public static Map<String ,String>)
   
    类中的属性
    3. public static Map<String, String> onlineUser = new HashMap<String, String>();
   
    类中的方法列表:
    3.1. 得到在线用户Map
    3.2. 添加在线用户
    3.3. 得到在线用户的sessionId
    3.4. 判断用户是否已经登录
    3.5. 移除在线用户

4. 登录Action (LoginAction)

    类中的方法列表:
    4.1. 用户登录
    4.2. 用户退出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值