在线用户统计问题(续)

采用了jass的方法以后(代码如下),现在我如果打开首页,会显示a   user   coming!  
  可是当我关闭首页以后,并没有destroy   Session啊!这是为什么呢?请高手解答!如何才能比较准确的一点把关闭IE或者通过其他方式已经离开网站的用户从列表种清除呢??  
  /**监听器,监听用户的在线信息*/  
  public   class   UserSessionListener  
          implements   HttpSessionListener   {  
      public   UserSessionListener()   {  
      }  
   
      public   static   int   onlineUserCount   =   0;  
      public   static   ArrayList   onlineUsersList   =   new   ArrayList();  
   
      /*   (non-Javadoc)  
        *   @see   javax.servlet.http.HttpSessionListener#sessionCreated(javax.servlet.http.HttpSessionEvent)  
        */  
      public   void   sessionCreated(HttpSessionEvent   httpSessionEvent)   {  
   
          onlineUserCount++;  
          System.out.println(onlineUserCount   +   "   A   users   coming!");  
   
      }  
   
      /*   (non-Javadoc)  
        *   @see   javax.servlet.http.HttpSessionListener#sessionDestroyed(javax.servlet.http.HttpSessionEvent)  
        */  
      public   void   sessionDestroyed(HttpSessionEvent   httpSessionEvent)   {  
          //   TODO   Auto-generated   method   stub  
          onlineUserCount--;  
          SysUser   sysUser   =   (SysUser)   httpSessionEvent.getSession().getAttribute(  
                  "com.hhsoft.beans.elearning.model.user.SysUser");  
          if   (sysUser   !=   null){  
              int   i   =   onlineUsersList.indexOf(sysUser.getUserId());  
              onlineUsersList.remove(i);  
              System.out.println("Session   Destroyed!Session   ID:"   +   sysUser.getUserId());  
          }  
          System.out.println("Session   Destroyed!A   user   left!");  
   
      }  
   
  }   

好像各个Element的顺序是有要求的,  
  你最好是按照icon?,display-name?,description?,distributable?,context-param*,filter*,filter-  
  mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welco  
  me-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-const  
  raint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*  
  的顺序,listener好像就必须放在filter-mapping的后面,servlet的前面,  
  你把session-config放到servlet-mapping后面试试。  
  下面是我的一个config,就没有问题:  
   
  <?xml   version="1.0"   encoding="UTF-8"?>  
  <!DOCTYPE   web-app   PUBLIC   "-//Sun   Microsystems,   Inc.//DTD   Web   Application   2.3//EN"   "http://java.sun.com/dtd/web-app_2_3.dtd">  
  <web-app>  
      <filter>  
          <filter-name>servlet2</filter-name>  
          <filter-class>servletexam.Servlet2</filter-class>  
      </filter>  
      <filter>  
          <filter-name>servlet3</filter-name>  
          <filter-class>servletexam.Servlet3</filter-class>  
      </filter>  
      <filter-mapping>  
          <filter-name>servlet2</filter-name>  
          <url-pattern>/*</url-pattern>  
      </filter-mapping>  
      <filter-mapping>  
          <filter-name>servlet3</filter-name>  
          <servlet-name>servlet1</servlet-name>  
      </filter-mapping>  
      <listener>  
          <listener-class>servletexam.MySessionListener</listener-class>  
      </listener>  
      <servlet>  
          <servlet-name>action</servlet-name>  
          <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>  
          <init-param>  
              <param-name>config</param-name>  
              <param-value>/WEB-INF/struts-config.xml</param-value>  
          </init-param>  
          <init-param>  
              <param-name>debug</param-name>  
              <param-value>2</param-value>  
          </init-param>  
          <load-on-startup>2</load-on-startup>  
      </servlet>  
      <servlet>  
          <servlet-name>servlet1</servlet-name>  
          <servlet-class>servletexam.Servlet1</servlet-class>  
      </servlet>  
      <servlet-mapping>  
          <servlet-name>action</servlet-name>  
          <url-pattern>*.do</url-pattern>  
      </servlet-mapping>  
      <servlet-mapping>  
          <servlet-name>servlet1</servlet-name>  
          <url-pattern>/servlet1</url-pattern>  
      </servlet-mapping>  
      <session-config>  
          <session-timeout>1</session-timeout>  
      </session-config>  
      </web-app>  

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值