如题,项目启动的时候调用了三次我自己写的OnlineCountListener类,
我用来统计在线人数的。可是我服务一启动就会调用三次这个sessionCreated方法。
我的监听器package com.looveh.demo1;import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;@WebListener
public class OnlineCountListener implements HttpSessionListener {    public int count = 0;    @Override
    public void sessionCreated(HttpSessionEvent httpSessionEvent) {
        System.out.println("session created");
        count++;
        httpSessionEvent.getSession().getServletContext().setAttribute("count",count);
    }    @Override
    public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
        System.out.println("session destroyed");
        count--;
        httpSessionEvent.getSession().getServletContext().setAttribute("count",count);
    }
}
HTML
<%@page language="java" pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %>
<html>
<body>
<h2>Hello World!</h2>
在线人数:<%=application.getAttribute("count")%>
</body>
</html>
web.xml<!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>
  <display-name>Archetype Created Web Application</display-name>  <listener>
    <listener-class>com.looveh.demo1.OnlineCountListener</listener-class>
  </listener>
</web-app>启动的时候就直接是3了,销毁什么的都是正常的!

解决方案 »

  1.   

    你debug看下启动的时候调用了三次?你用浏览器多建几个链接关了tomcat再启动看看什么情况.
      

  2.   

    是调用了3次,我的控制台打印了3次sessionCreated。就那么几行代码。不知道问题出在哪
      

  3.   

    是调用了3次,我的控制台打印了3次sessionCreated。就那么几行代码。不知道问题出在哪我试了一下确实会自动进行调用(有时候3次有时候2次),  这应该和idea 有关系,在我把代码打包部署到 tomcat上直接运行时,结果是正确的.具体原形不清楚
      

  4.   

    是调用了3次,我的控制台打印了3次sessionCreated。就那么几行代码。不知道问题出在哪我试了一下确实会自动进行调用(有时候3次有时候2次),  这应该和idea 有关系,在我把代码打包部署到 tomcat上直接运行时,结果是正确的.具体原形不清楚好的吧!真的是醉了
      

  5.   

    是调用了3次,我的控制台打印了3次sessionCreated。就那么几行代码。不知道问题出在哪我试了一下确实会自动进行调用(有时候3次有时候2次),  这应该和idea 有关系,在我把代码打包部署到 tomcat上直接运行时,结果是正确的.具体原形不清楚好的吧!真的是醉了我自己试的也是那样,打包部署了是正常的
      

  6.   

    是调用了3次,我的控制台打印了3次sessionCreated。就那么几行代码。不知道问题出在哪我试了一下确实会自动进行调用(有时候3次有时候2次),  这应该和idea 有关系,在我把代码打包部署到 tomcat上直接运行时,结果是正确的.具体原形不清楚好的吧!真的是醉了我自己试的也是那样,打包部署了是正常的
    你是打成war包放到tomcat下运行吗?
      

  7.   

    是调用了3次,我的控制台打印了3次sessionCreated。就那么几行代码。不知道问题出在哪我试了一下确实会自动进行调用(有时候3次有时候2次),  这应该和idea 有关系,在我把代码打包部署到 tomcat上直接运行时,结果是正确的.具体原形不清楚好的吧!真的是醉了我自己试的也是那样,打包部署了是正常的
    你是打成war包放到tomcat下运行吗?嗯嗯, 打包放 webapps 下是正常的,我也是醉了. 搞不懂为啥.