当会话超时时,我找不到任何解决方案让Spring与参数一起重定向到页面。我需要重定向到登录页面,错误如"会话已过期" 。我尝试了过滤器和方法 session.isNew()。但它不起作用,因为当请求到达登录页面时,它总是已经有会话。此外, HttpSessionEvent 处理程序不起作用,因为它不允许访问请求属性并重定向到页面。
答案 0 :(得分:1)
最简单的方法是创建一个Interceptor,它会在会话到期后的每个响应中添加一个Refresh标头。
public class RefreshInterceptor extends HandlerInterceptorAdapter {
@Override
public void postHandle (
HttpServletRequest request,
HttpServletResponse response,
Object handler,
ModelAndView modelAndView
) throws Exception {
//if session != null and user is authenticated then...
response.setIntHeader("Refresh", figureOutWhenSessionExpires() + A_SMALL_DELAY );
super.postHandle(request, response, handler, modelAndView);
}
}