【问题标题】: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)
【问题讨论】:
标签:
authentication
servlets
servlet-filters
session-timeout
【解决方案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);
}