java - Java Web 应用程序中的 session 过期时如何重定向到登录页面?

标签 java servlets authentication servlet-filters

我在 JBoss AS 5 中运行一个 Web 应用程序。我还有一个 servlet 过滤器,它拦截所有对服务器的请求。现在,如果 session 已过期,我想将用户重定向到登录页面。我需要在过滤器中执行此“isSessionExpired()”检查,并需要相应地重定向用户。我该怎么做?我在 web.xml 中设置 session 时间限制,如下所示:

<session-config>
    <session-timeout>15</session-timeout>
</session-config>

最佳答案

您可以使用 Filter并进行以下测试:

HttpSession session = request.getSession(false);// don't create if it doesn't exist
if(session != null && !session.isNew()) {
    chain.doFilter(request, response);
} else {
    response.sendRedirect("/login.jsp");
}

以上代码未经测试

然而,这不是最广泛的解决方案。您还应该测试 session 中是否存在某些特定于域的对象或标志,然后再假设由于 session 不是新 session ,因此用户必须已登录。偏执!

关于java - Java Web 应用程序中的 session 过期时如何重定向到登录页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1026846/

相关文章:

java - 类的静态 block 中的Android getSharedPreferences

Java 8 数组列表返回父类(super class)对象的列表

java - Spring RequestMapping java.lang.IllegalArgumentException 错误

authentication - 是什么导致了此 Shibboleth 错误 : SAML 2 SSO profile is not configured for relying party?

testing - 具有设计身份验证的 rspec Controller 测试

java - OAuth token 请求 - 从 responseentity 获取 access_token

java - 无法从 Jquery TAGIT 获取标签列表

java - 如何指定 war 文件中的目录?

tomcat - 在 NetBeans 中运行 TimeForm servlet 项目时出现 HTTP 状态 404 错误

authentication - .net 网络 API。如何从访问 token 中检索用户属性(用户 ID)?基于当前用户/ token 的请求处理程序代码