1

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

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

公共无效doFilter(ServletRequest servletRequest,ServletResponse servletResponse,FilterChain filterChain)

4

1 回答 1

1

您可以通过查看用户是否发送了会话 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);
}
于 2012-12-20T12:37:19.923 回答