HttpSession事件监听器的sessionCreated不被执行
项目中需要统计在线用户数,用了HttpSessionListener,LoginController调用request.getSession(),HttpSessionListener事件监听器的sessionCreated不执行。
相关代码
@WebListener
public class SessionListener implements HttpSessionListener, HttpSessionAttributeListener {
public static final Logger logger = LoggerFactory.getLogger(SessionListener.class);
/**
* 记录session的数量
*/
public int count = 0;
public SessionListener(){
logger.info("SessionListener......");
}
@Override
public void sessionCreated(HttpSessionEvent httpSessionEvent) {
logger.info("===============sessionCreated===============");
System.out.println("【HttpSessionListener监听器】count++ 增加");
count++;
httpSessionEvent.getSession().getServletContext().setAttribute("count", count);
}
@Override
public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
logger.info("===============sessionDestroyed===============");
System.out.println("【HttpSessionListener监听器】count-- 减少");
count--;
httpSessionEvent.getSession().getServletContext().setAttribute("count", count);
}
@Override
public void attributeAdded(HttpSessionBindingEvent httpSessionBindingEvent) {
System.out.println("1111111111111111111111111111");
}
@Override
public void attributeRemoved(HttpSessionBindingEvent httpSessionBindingEvent) {
System.out.println("222222222222222222222222222222");
}
@Override
public void attributeReplaced(HttpSessionBindingEvent httpSessionBindingEvent) {
System.out.println("333333333333333333333333333333333");
}
项目启动时,有打印SessionListener......,说明已经监听类已经初始化,有调用到监听。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
打印SessionListener...... 只能说明这个监听器被spring容器归纳,因为你这句是在构造函数里。
除了写一个@WebListener的类之后。还需要configuration配置这个监控器