用户登录锁定后异常退出

应用场景: 当用户登录时在被锁定状态下异常退出,做一下处理:

/**
     * <判断session超时如果超时注销session>
     * <功能详细描述>
     * @see [类、类#方法、类#成员]
     */
    public void checkSession()
    {
        // 获取服务器上下文对象
        ServletContext sct = palService.getServletContext();
        
        //获取所有用户信息,并遍历用户
        List<UserInfo> userList = userService.getAllUser();
        for (UserInfo users : userList)
        {
            //根据用户ID从服务器上下文中获取session对象
            HttpSession session = (HttpSession)sct.getAttribute(users.getUserID());
            
            //如果session不为空判断用户最后一次操作是否超时,目前暂定超时时间为5分钟
            if (session != null)
            {
                //获取session不为空的用户ID
                String userID = users.getUserID();
                
                //获取系统当前时间
                long systemTime = System.currentTimeMillis();
                
                //获取用户最后一次操作时间
                long sseeionTime = session.getLastAccessedTime();
                
                System.out.println(systemTime - sseeionTime);
                
                //如果用户最后一次操作时间大于5分钟系统自动把用户锁解锁,并把session和ServletContext释放
                if (systemTime - sseeionTime > 60000)
                {
                    //解锁
                    userService.deblockingUserById(userID);
                    
                    //清空session
                    session.removeAttribute("user");
                    
                    //清空ServletContext
                    sct.removeAttribute(userID);
                }
            }
        }
    }

 

获取servletContext

@Service("palService")
public class PalpitationCheckServiceImpl implements ServletContextAware
{
    private ServletContext ctx;
    
    /**
     * {@inheritDoc}
     */
    @Override
    public void setServletContext(ServletContext servletcontext)
    {
        this.ctx = servletcontext;
    }
    
    public ServletContext getServletContext()
    {
        return this.ctx;
    }
}

 

ServletContextAware:在Spring中,凡是实现ServletContextAware接口的类,都可以取得ServletContext.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值