HttpSessionListener.sessionCreated()未被调用

我有一个非常简单的Servlet和一个非常简单的HttpSessionListener:

@WebServlet("/HelloWorld")

public class HelloWorld extends HttpServlet {

private static final long serialVersionUID = 1L;

@Override

public void init(ServletConfig config) throws ServletException {

super.init(config);

getServletContext().setAttribute("applicationHits", new AtomicInteger(0));

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("get");

((AtomicInteger) request.getServletContext().getAttribute("applicationHits")).incrementAndGet();

((AtomicInteger) request.getSession(true).getAttribute("sessionHits")).incrementAndGet();

request.setAttribute("requestHits", 0);

getServletContext().getRequestDispatcher("/view/HelloWorld.jsp").forward(request, response);

}

}

@WebListener

public class SessionListener implements HttpSessionListener {

public SessionListener() {

}

public void sessionCreated(HttpSessionEvent arg0) {

System.out.println("session listener");

arg0.getSession().setAttribute("sessionHits", new AtomicInteger(0));

}

public void sessionDestroyed(HttpSessionEvent arg0) {

}

}

我的HttpSessionListener.sessionCreated()方法从未被调用(没有日志输出),最终NullPointerException我在调用getSession()的那一行上得到一个

((AtomicInteger) request.getSession(true).getAttribute("sessionHits")).incrementAndGet();

request.setAttribute("requestHits", 0);

我尝试拨打电话时也getSession()没有true问题,但存在相同的问题。

我不明白- @WebListener注释不足以调用我的侦听器吗?Eclipse甚至在下方将其显示为侦听器Deployment

Descriptor/Listeners

回答:

原来这是愚蠢的Eclipse问题之一…

Project-> Clean …,然后重新启动Tomcat。

以上是 HttpSessionListener.sessionCreated()未被调用 的全部内容, 来源链接: utcz.com/qa/397597.html

回到顶部