public class OnlineCountListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent httpSessionEvent) {
// code
}
@Override
public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
}
}
问题
在以上的sessionCreated中获取session的属性获取不到,getAttribute一直是Null
但是前面传了session过去
HttpSession session=req.getSession();
session.setMaxInactiveInterval(1800);
session.setAttribute("User",user);
resp.sendRedirect("main");
原因
创建session时监听,此时获取到的session没有属性值,应该监听HttpSessionAttributeListener
解决办法
public class OnlineCountListener implements HttpSessionAttributeListener {
@Override
public void attributeAdded(HttpSessionBindingEvent httpSessionBindingEvent) {
System.out.println("添加了一个sesson属性");
}
@Override
public void attributeRemoved(HttpSessionBindingEvent httpSessionBindingEvent) {
System.out.println("消除了一个session属性");
}
@Override
public void attributeReplaced(HttpSessionBindingEvent httpSessionBindingEvent) {
System.out.println("替换了一个session属性");
}
}