package com.beyondlife.listener;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import com.beyondlife.vo.UList;
import com.beyondlife.vo.User;
public class UserListener implements ServletContextListener,
HttpSessionListener,HttpSessionAttributeListener{
ServletContext application = null;
//服务器关闭时清空内容
public void contextDestroyed(ServletContextEvent event) {
Map ulist = (Map)event.getServletContext().getAttribute("ulist");
if(ulist != null){
ulist.clear();
}
}
public void contextInitialized(ServletContextEvent event) {
//初始化用户列表
Map ulist = new HashMap();
application = event.getServletContext();
application.setAttribute("ulist", ulist);
}
public void sessionCreated(HttpSessionEvent event) {
}
//把用户过期或者注销把用户信息删除
public void sessionDestroyed(HttpSessionEvent event) {
HttpSession session = event.getSession();
User user = (User)session.getAttribute("user");
if(user != null){
System.out.println(user.getSerial());
Map ulist = (Map)application.getAttribute("ulist");
UList ul = (UList)ulist.get(user.getUid());
if(ul != null && ul.getSerial().equals(user.getSerial())){
ulist.remove(user.getUid());
}
}
}
public void attributeAdded(HttpSessionBindingEvent event) {
Object obj = event.getValue();
if(obj.getClass().getName().equals("com.beyondlife.vo.User")){
User user = (User)obj;
//建立用户列表实体
UList ul = new UList();
ul.setSerial(user.getSerial());
ul.setUid(user.getUid());
ul.setName(user.getName());
//如果用户已经登陆他的信息将会被map映射替代,因为KEY是 唯一的UID
Map ulist = (Map)application.getAttribute("ulist");
ulist.put(user.getUid(), ul);
}
}
public void attributeRemoved(HttpSessionBindingEvent event) {
Object obj = event.getValue();
if(obj.getClass().getName().equals("com.beyondlife.vo.User")){
User user = (User)obj;
//该用户的信息消除
Map ulist = (Map)application.getAttribute("ulist");
ulist.remove(user.getUid());
}
}
//用户重新登陆
public void attributeReplaced(HttpSessionBindingEvent event) {
Object obj = event.getValue();
if(obj.getClass().getName().equals("com.beyondlife.vo.User")){
User user = (User)event.getSession().getAttribute("user");
//建立用户列表实体
UList ul = new UList();
ul.setSerial(user.getSerial());
ul.setUid(user.getUid());
ul.setName(user.getName());
//用户原来的信息将会被map映射替代,因为KEY是唯一的UID
Map ulist = (Map)application.getAttribute("ulist");
ulist.put(user.getUid(), ul);
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
同一个账号,同一时间只能允许他登录一次
共35个文件
tld:15个
class:6个
java:6个
4星 · 超过85%的资源 需积分: 50 88 下载量 149 浏览量
2008-12-03
13:51:40
上传
评论 1
收藏 351KB RAR 举报
温馨提示
让一个账号,在同一段时间,只能允许他登录一次
资源推荐
资源详情
资源评论
收起资源包目录
OneLogin.rar (35个子文件)
OneLogin
MultiLogin
admin
test.jsp 354B
error.jsp 409B
success.jsp 954B
META-INF
MANIFEST.MF 39B
WEB-INF
scriptfree.tld 2KB
c-1_0.tld 11KB
fmt-1_0.tld 12KB
fn.tld 7KB
web.xml 1KB
fmt.tld 19KB
x.tld 12KB
x-1_0-rt.tld 7KB
fmt-1_0-rt.tld 11KB
x-1_0.tld 7KB
sql.tld 8KB
classes
com
beyondlife
servlet
Check.class 3KB
CharacterEncording.class 1KB
Login.class 2KB
vo
User.class 2KB
UList.class 1KB
listener
UserListener.class 3KB
sql-1_0.tld 6KB
sql-1_0-rt.tld 5KB
lib
standard.jar 343KB
jstl.jar 17KB
c-1_0-rt.tld 11KB
permittedTaglibs.tld 1KB
c.tld 16KB
src
com
beyondlife
servlet
Check.java 2KB
Login.java 1KB
CharacterEncording.java 778B
vo
User.java 2KB
UList.java 1KB
listener
UserListener.java 3KB
index.jsp 1KB
共 35 条
- 1
资源评论
- zhaoyapeng99992013-01-24这个还是一般般,没有达到我想要的效果
- yang4251464392013-05-26资源一般,实现的比较简单
- free_live_zyx2012-10-24o(︶︿︶)o 好难过呀 我是学.net 的 这个例子是java的
- Springlizhe2013-09-20下了看下,用了别的方法做了。
- aique2013-04-07下了看下,用了别的方法做了。
hudeyi200
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功