gpt4 book ai didi

jsf - 如何在 JSF 2 中检测 session 已失效?

转载 作者:行者123 更新时间:2023-12-04 22:34:16 24 4
gpt4 key购买 nike

在我的应用程序中,我有一个退出按钮,单击该按钮后,当前用户的 session 将被以下代码段无效。

FacesContext.getCurrentInstance().getExternalContext().invalidateSession();

我将用户重定向到不同的页面。

但是现在我想要如果用户单击后退按钮,我会将他带到应用程序的起始页,而不是他访问的最后一页。
我有一个应用程序阶段监听器,它将与页面缓存相关的 header 设置为“无”,现在我只想检测该用户 session 是否已失效。
但我想每当用户单击后退按钮时,它都会为用户创建一个新 session 。有什么办法可以防止吗?

最佳答案

How to detect session has been invalidated in JSF 2?



检查用户是否有 requested a session ID which is not valid
HttpServletRequest request = (HttpServletRequest) externalContext.getRequest();

if (request.getRequestedSessionId() != null && !request.isRequestedSessionIdValid()) {
// Session has been invalidated during the previous request.
}

it is creating a new session for the user. Is there any way to prevent it?



只是不要让 您的 应用程序代码创建 session 。当您的应用程序需要在 session 中存储一些东西时, session 将被隐式创建,例如 View 或 session 范围的 bean,或 <h:form> 的 View 状态等。

I have an application phase listener which sets the page cache related headers to 'none'



servlet 过滤器是一个更好的地方。另见 Avoid back button on JSF web application

关于jsf - 如何在 JSF 2 中检测 session 已失效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11206817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com