我在 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/