?? sessionlistener.java
字號:
package com.wish.bbs.listener;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import com.wish.bbs.pojo.User;
public class SessionListener
implements ServletContextListener,HttpSessionListener,HttpSessionAttributeListener
{
// 聲明一個ServletContext對象
private ServletContext application = null ;
public void contextInitialized(ServletContextEvent sce)
{
// 容器初始化時,向application中存放一個空的容器
this.application = sce.getServletContext() ;
this.application.setAttribute("alluser",new ArrayList()) ;
}
public void contextDestroyed(ServletContextEvent sce)
{}
public void sessionCreated(HttpSessionEvent se)
{
System.out.println(se.getSession().getId());
}
public void sessionDestroyed(HttpSessionEvent se)
{
// 將用戶名稱從列表中刪除
List l = (List)this.application.getAttribute("alluser") ;
String value = (String)se.getSession().getAttribute("user") ;
l.remove(value) ;
this.application.setAttribute("alluser",l) ;
}
public void attributeAdded(HttpSessionBindingEvent se)
{
// 如果登陸成功,則將用戶名保存在列表之中
List l = (List)this.application.getAttribute("alluser") ;
String user=se.getName();
if(user.equals("user")){
l.add(se.getValue()) ;
this.application.setAttribute("alluser",l) ;
}
System.out.println(l.size());
}
public void attributeRemoved(HttpSessionBindingEvent se)
{
List l = (List)this.application.getAttribute("alluser") ;
String name=se.getName();
if(name.equals("user")){
User user=(User)se.getValue();
Iterator it=l.iterator();
int i=0;
while(it.hasNext()){
User t=(User)it.next();
if(t.getUsername().equals(user.getUsername())){
l.remove(i);
}
i++;
}
}
this.application.setAttribute("alluser",l) ;
}
public void attributeReplaced(HttpSessionBindingEvent se)
{}
};
/*
<listener>
<listener-class>cn.mldn.lxh.listener.OnLineDemo</listener-class>
</listener>
*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -