counter.java

来自「基于JSP+Struts的在线购物商城」· Java 代码 · 共 50 行

JAVA
50
字号
package eshop.struts;



import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class Counter implements HttpSessionListener{
	
	private static long accessedNumber = 0;
	
	private static List sessionIdList = new ArrayList();
	
	public static long getAccessedNumber() {
		return accessedNumber;
	}
	
	public static int getOnlineNumber() {
		return sessionIdList.size();
	}
	
	private java.util.TimerTask task = new TimerTask() {

		public void run() {
			//将accessedNumber和sessionIdList.size()写回到数据库里
		}
		
	};
	
	private Timer timer = new Timer();
	
    public void sessionCreated(HttpSessionEvent event) {
    	if( accessedNumber == 0 ) {
    		//说明网站可能刚刚启动,需要从数据库中读取历史数据
    		timer.schedule(task, 5*60*1000);
    	}
        accessedNumber++;
        sessionIdList.add( event.getSession().getId() );
        
    }
   public void sessionDestroyed(HttpSessionEvent event){  
	   sessionIdList.remove( event.getSession().getId() );
   } 
 } 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?