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

Authentication 会话超时后如何将用户重定向到自定义网页?,authentication,servlets,servlet-filters,session-timeout,Authentication,Servlets,Servlet Filters,Session Timeout,我想通过我的代码将用户重定向到会话超时页面。 我可以在过滤器中编写什么逻辑来检查会话是否超时并将用户重定向到该自定义页面(比如CustomSessionTimeout.jsp)。此页面不必经过任何筛选 这是第一个筛选器中一个方法的签名 公共无效doFilter(ServletRequest ServletRequest、ServletResponse ServletResponse、FilterChain FilterChain)您可以通过查看用户是否有会话cookie以及不再符合服务器要求的请

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

这是第一个筛选器中一个方法的签名


公共无效doFilter(ServletRequest ServletRequest、ServletResponse ServletResponse、FilterChain FilterChain)

您可以通过查看用户是否有会话cookie以及不再符合服务器要求的请求来检查

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

您可以通过查看用户是否有会话cookie以及请求来检查这一点,该请求已不再符合服务器的要求

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