Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux集群 > Architecture > » 正文

J2EE 用监听器实现同一用户只能有一个在线(2)

来源: 未知 分享至:

System.out.println(\"Session被创建!\");
}

//session销毁时候被调用(1.用户安全退出;2.session生命周期结束)
@SuppressWarnings(\"unchecked\")
public void sessionDestroyed(HttpSessionEvent arg0) {

HttpSession session = arg0.getSession(); //获取session
String user = (String)session.getAttribute(\"user\"); //获取用户信息
ArrayList<String> users = (ArrayList<String>)session.getServletContext().getAttribute(\"users\"); //获取用户列表
for(int i=0;i<users.size();i++){
String username = (String)users.get(i);
if(username.equals(user)){
users.remove(i); //将这个用户从ServletContext对象中移除
break;
}
}
session.invalidate(); //将session设置成无效
System.out.println(\"一个Session被销毁了!\");
}
}


工作还没结束呢,我还得配置一下web.xml文件,不然服务器是不会认识到这个监听器的:

Java代码
<!-- 监听器注册 -->
<listener>
<!-- 监听器类的路径 -->
<listener-class>com.listener.SessionListener</listener-class>
</listener>


为了测试能及时看到效果,我再来配置一下session的存在时间,下面我将session的生命周期配置成一分钟:

Java代码
<session-config>
<session-timeout>1</session-timeout>
</session-config>


OK,完事了。这样就能实现同一用户只能有一个在线了

Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史