Java 会话时间到期后注销

Java 会话时间到期后注销,java,session,Java,Session,在我的web应用程序(primefaces/java)中,我有30分钟的会话时间(用js实现),会话结束后,我有一个对话框“您的会话已过期”,单击“确定”按钮后,我们被重定向到/注销页面,用户已正确注销。 但如果我有“您的会话已过期”对话框,并且我刷新页面而不是单击“确定”按钮-我们没有注销-会话正在重置,并且我们还有30分钟的会话时间 我试图在对话框后删除JSESSIONID cookie,但我无法通过js访问此cookie:/ 我还尝试在dialog open事件上触发invalidateS

在我的web应用程序(primefaces/java)中,我有30分钟的会话时间(用js实现),会话结束后,我有一个对话框“您的会话已过期”,单击“确定”按钮后,我们被重定向到/注销页面,用户已正确注销。 但如果我有“您的会话已过期”对话框,并且我刷新页面而不是单击“确定”按钮-我们没有注销-会话正在重置,并且我们还有30分钟的会话时间

我试图在对话框后删除JSESSIONID cookie,但我无法通过js访问此cookie:/

我还尝试在dialog open事件上触发invalidateSession函数,但它现在对我有效

<p:ajax event="open" listener="#{footerBean.invalidateSession()}"/>

_________

public void invalidateSession() {
    session.invalidate();
}

_________
公共无效失效会话(){
session.invalidate();
}
您知道如何清除会话cookie或其他内容,以避免在显示“会话已过期”对话框后刷新页面上的会话刷新吗?
解决方案可以是jsf或js端

使会话过期的最简单方法是将页面重定向到不带对话框的注销位置,或者如果必须显示对话框,则在后面进行ajax调用以使会话过期。否则,刷新页面是扩展会话的合法方法。是的,我知道,但是这个对话是我必须拥有的。现在,我的解决方案是通过jquery发送GET logout请求通过ajax发送GET logout请求似乎很简单-只需将其作为显示对话框的代码的一部分发送,然后再显示它。缺点是什么?