我使用javascript ajax每隔5秒检查一次sessoin状态。如果服务器从会话中获取null,则js将重定向到登录页面。
我设置web.xml
<listener>
<listener-class>com.my.project.listener.SessionListener</listener-class>
</listener>
<session-config>
<session-timeout>1</session-timeout>
<cookie-config>
<http-only>true</http-only>
</cookie-config>
SessionListener.java
:
public class SessionListener implements HttpSessionListener {
protected final Logger logger = LoggerFactory.getLogger(getClass());
public void sessionCreated(HttpSessionEvent httpSessionEvent) {
logger.debug("sessionCreated");
}
public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
HttpSession session = httpSessionEvent.getSession();
//String username = (String) session.getAttribute("s_userId");
logger.debug(s_userId+"sessionDestroyed!。");
session.invalidate();
logger.debug(s_userId+"is session really Destroyed??");
}
}
但一分钟后。它仍然没有退出 怎么会在一分钟后破坏会话?
我在session.invalidate();
之后打印日志
但它仍然可以获得s_userID
怎么了?
我的第二个问题是我使用<%= session.getMaxInactiveInterval() %>
但是,如果用户在网上做某事,它似乎没有延长时间。它只计1分钟,然后倒计时。这样对吗?