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