会话过期时,Spring MVC重定向到包含自定义参数的页面

时间:2016-02-05 15:55:33

标签: spring session redirect session-timeout

当会话超时时,我找不到任何解决方案让Spring与参数一起重定向到页面。我需要重定向到登录页面,错误如"会话已过期" 。我尝试了过滤器和方法 session.isNew()。但它不起作用,因为当请求到达登录页面时,它总是已经有会话。此外, HttpSessionEvent 处理程序不起作用,因为它不允许访问请求属性并重定向到页面。

1 个答案:

答案 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);

    }
}