当前位置: 首页 > 面试题库 >

当会话在Java Web应用程序中过期时,如何重定向到登录页面?

洪研
2023-03-14
问题内容

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

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

问题答案:

你可以使用过滤器并进行以下测试:

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");
}

上面的代码未经测试。

但是,这不是最广泛的解决方案。你应该还测试了一些特定领域的对象或标志是在会话中可用假设,因为会话不是新用户意有所指登录之前.



 类似资料:
  • 问题内容: 我正在使用ASP.NET MVC。我想在会话过期时重定向到登录页面。我该如何实现?如果我正在对控制器中的方法进行AJAX调用,那么如果在这种情况下我的会话期满,我也想重定向到登录页面。 问题答案: 您可以通过3种方式做到这一点: 为您的操作创建一个过滤器,并将其应用于OnActionExecuting中的代码编写(在执行操作之前),http://www.asp.net/mvc/tuto

  • 我使用的是和和。一切都很好,但是当会话超时的时候,我会得到以下错误”,因为我已经在布局的main.gsp文件中调用了session变量。现在,我希望在每次会话超时后重定向到登录页面,并且不显示错误页面。要在会话超时后重定向,我已经在文件中这样做了 但是有这么多页,所以很难写每一页。还有其他的方法做这件事吗?请帮忙。

  • 我在global.asax中尝试了以下代码,但不起作用,并导致Application_Error(“响应在此上下文中不可用。”)。

  • 我现在一直在努力使用我的登录页面来让组件呈现Loggedin组件。我的前端是Reactjs,后端是NodeJS。我对nodejs、expression和react都是新手。 在loginform组件上,我使用fetch进行了一次post,它将用户名和密码传递给后端的相应endpoint。没问题。在后端,它读取我存储用户(不使用任何数据库)的jsonfile来查找匹配项,如果用户名和密码都匹配,则它

  • 问题内容: 我的应用看起来像: 如果用户访问/ game下的页面并没有登录,我想将他们重定向到登录页面。 如何在所有路由器中做到优雅? 问题答案: 基本思想是使用自定义组件(在下面的示例中为PrivateRoute)包装需要身份验证的路由。PrivateRoute将使用某种逻辑来确定用户是否已通过身份验证,然后确定是否通过身份验证。允许请求的路由呈现或重定向到登录页面。 在react-router

  • 记录器文件中的日志- org.springframework.Security.Access.event.loggerlistener-安全授权失败,原因是:org.springframework.Security.Access.accessdeniedexception:访问被拒绝;通过身份验证的主体:org.springframework.security.authentication.ano