如何在会话超时后销毁会话

时间:2015-07-16 12:30:30

标签: java session

我使用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分钟,然后倒计时。这样对吗?

0 个答案:

没有答案