網站人數統計監聽器

package com.pzhu.listeners;

import java.util.Vector;

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;

public class WebListener implements ServletContextListener,
		HttpSessionListener, HttpSessionAttributeListener {

	ServletContext context=null;
	private static int onlineCounter = 0;
	private static Vector<String> onlineUserList = new Vector<String>();

	public static int getOnlineCounter() {
		return onlineCounter;
	}

	public void contextDestroyed(ServletContextEvent arg0) {

	}

	public void contextInitialized(ServletContextEvent arg0) {

		context=arg0.getServletContext();
		arg0.getServletContext().setAttribute("onlineUserList", onlineUserList);
	}

	public void sessionCreated(HttpSessionEvent arg0) {

		onlineCounter++;
		context.setAttribute("onlineCounter", onlineCounter+"");
	}

	public void sessionDestroyed(HttpSessionEvent arg0) {
		
		onlineCounter--;
		context.setAttribute("onlineCounter", onlineCounter+"");	
		if(arg0.getSession().getAttribute("SYSTEMLOGININFO")!=null){
			onlineUserList.remove(arg0.getSession().getAttribute("SYSTEMLOGININFO").toString());
		}	
	}

	public static Vector<String> getOnlineUserList() {
		return onlineUserList;
	}

	public void attributeAdded(HttpSessionBindingEvent arg0) {
		if (arg0.getName().equals("SYSTEMLOGININFO")) {
			onlineUserList.add(arg0.getValue().toString());
		}
	}

	public void attributeRemoved(HttpSessionBindingEvent arg0) {
		if (arg0.getName().equals("SYSTEMLOGININFO")) {
			onlineUserList.remove(arg0.getValue().toString());
		}
	}
	public void attributeReplaced(HttpSessionBindingEvent arg0) {

	}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章