会话超时后如何将用户重定向到自定义网页?

Posted

技术标签:

【中文标题】会话超时后如何将用户重定向到自定义网页?【英文标题】:How to redirect user to custom web page after session times out? 【发布时间】:2012-12-07 18:18:08 【问题描述】:

我想通过我的代码将用户重定向到会话超时页面。 我可以在过滤器中编写什么逻辑来检查会话是否已超时并将用户重定向到该自定义页面(例如 CustomSessionTimeout.jsp)。此页面无需经过任何过滤。

这是第一个过滤器中一个方法的签名

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)

【问题讨论】:

【参考方案1】:

您可以通过查看用户是否有sent 会话cookie 以及根据服务器不再是valid 的请求来检查。

@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) 
    HttpServletRequest request = (HttpServletRequest) req;
    HttpServletResponse response = (HttpServletResponse) res;

    if (request.getRequestedSessionId() != null && !request.isRequestedSessionIdValid()) 
        // Session has expired! Now do your job.
        response.sendRedirect(request.getContextPath() + "/CustomSessionTimeout.jsp");
        return;
    

    chain.doFilter(req, res);

【讨论】:

以上是关于会话超时后如何将用户重定向到自定义网页?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 8 Jetstream如何在重置密码后将用户重定向到自定义路由

会话超时后自动重定向到登录页面 - JSP,Spring

如果匿名用户无权访问 URL,如何将他们重定向到自定义页面而不是登录页面?

登录 NEXT-AUTH 后重定向到自定义 URL

如何将 Wordpress 注销重定向到自定义 URL

Laravel 5.4 登录后重定向到自定义 url