⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sessionlistener.java

📁 bbs论坛 采用java的Web开发strtus、hibernate
💻 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 + -