亚洲av色香蕉一区二区三区,十四以下岁毛片带血a级,亚洲 校园 欧美 国产 另类,亚洲av日韩av一区谷露,色欲av无码一区二区三区

  • 相關(guān)軟件
    >jsp 下實(shí)現(xiàn)防止重復(fù)在線,統(tǒng)計(jì)在線人數(shù)的辦法 創(chuàng)建者:webmaster 更新時(shí)間:2005-05-30 22:35

    防止重復(fù)在線,統(tǒng)計(jì)在線人數(shù)通常由三種辦法:1.通過(guò)數(shù)據(jù)庫(kù)的記錄 2.使用ServletContext類型的application

    3.采用session.

    第一種做法較簡(jiǎn)單但會(huì)給數(shù)據(jù)庫(kù)造成負(fù)擔(dān).第二種做法還沒(méi)去實(shí)現(xiàn).:)

    本文實(shí)現(xiàn)了采用session的做法,基本思想就是正常登陸的時(shí)候建立一個(gè)session記錄登陸名字,此時(shí)激發(fā)監(jiān)聽(tīng)器。

    代碼如下:

    1。登陸時(shí)假設(shè)登陸名loginINFO[0],建立session記錄登陸名字。

    if(rs_login.next()){
          Login_servlet.logger.info("登陸驗(yàn)證成功");//log4j
            OnLineUser OLU=new OnLineUser();//
          if (!OLU.existUser(loginINFO[0])){
            Login_servlet.logger.info("重復(fù)登陸");
          return;
                 
              }else{
                  session.setMaxInactiveInterval(3000); //session的生命周期
                    session.setAttribute(loginINFO[0],OLU);  
                 
             
              }

    2.監(jiān)聽(tīng)器代碼:OnLineUser

    /*
    * 創(chuàng)建日期 2005-5-12
    *
    * 目的:
    *
    */
    package cn.wst.common.onLine;

    import javax.servlet.http.HttpSessionBindingEvent;
    import javax.servlet.http.HttpSessionBindingListener;


    import org.apache.log4j.Logger;


    import java.util.*;
    /**
    * @author wangshangting
    *
    * 目的:
    * 用于統(tǒng)計(jì)在線人數(shù),防止統(tǒng)一帳號(hào)登陸,退出取消賬號(hào)
    */
    public class OnLineUser implements HttpSessionBindingListener{
    //   private static OnLineUser instance = null;

    //   synchronized public static OnLineUser getInstance()//singleton模式,確保只有一個(gè)OnLineUser實(shí)例
    //   {
    //   if( instance == null )
    //   {
    //     instance = new OnLineUser();
    //   }
    //   return instance;
    //   }

     
     
      static Logger logger = Logger.getLogger(OnLineUser.class.getName());
      public OnLineUser(){
      }

      private static Vector users=new Vector(); //靜態(tài)變量!!!!!!!!!!!!
      private int i=1;
      public int getCount(){
       
            users.trimToSize();
     
            return users.capacity();
      }
      public boolean existUser(String userName){
            users.trimToSize();
            boolean existUser=true;
            for (int i=0;i         {
                if (userName.equals((String)users.get(i)))
                {
                      existUser=false;
                      OnLineUser.logger.info(users.get(i));
                      OnLineUser.logger.info("重復(fù)");
                      break;
                }
            }
            return existUser;
      }

     
      public boolean deleteUser(String userName) {
        OnLineUser.logger.info("移除開(kāi)始!!");
            users.trimToSize();
       
            if(!existUser(userName)){
                int currUserIndex=-1;
                for(int i=0;i                   if(userName.equals((String)users.get(i))){
              //           OnLineUser.logger.info("找到");
                            currUserIndex=i;
                            break;
                      }
                }
                if (currUserIndex!=-1){
                    OnLineUser.logger.info("移除:"+currUserIndex);
                      users.remove(currUserIndex);
                      users.trimToSize();
                      return true;
                }
               
            }
            return false;
      }

      public Vector getOnLineUser()
      {
            return users;
      }
     
        public void valueBound(HttpSessionBindingEvent e) {
            users.trimToSize();
     
                users.add(e.getName());

               
                OnLineUser.logger.info(e.getName()+"\t     登入到系統(tǒng)\t"+(new Date()));
                OnLineUser.logger.info("第"+i+"進(jìn)入");
                i++;
         
                for(int i = 0;i < users.size();i++){
                    OnLineUser.logger.info(""+i+":"+users.get(i));
                }
               
                System.out.println("         在線用戶數(shù)為:"+getCount());  
               
          }

       

       
        /**
          *
          */
        public void valueUnbound(HttpSessionBindingEvent e) {
            users.trimToSize();
            String userName=e.getName();

            deleteUser(userName);

            OnLineUser.logger.info(userName+"\t     退出系統(tǒng)\t"+(new Date()));
            OnLineUser.logger.info("         在線用戶數(shù)為:"+getCount());
        }
    }


    3. 要記得在web.xml的所有servlet之前生命 OnLineUser,


    cn.wst.common.onLine.OnLineUser
    相關(guān)文章
    本頁(yè)查看次數(shù):