无法使用Spring在AppFog上维护会话

时间:2013-09-19 12:12:20

标签: java session spring-mvc web-hosting appfog

我正在使用Spring MVC-Hibernate开发的java Web应用程序。在Glassfish-3.1.2和Tomcat-6/7上部署时,该应用程序正常工作。但是,当应用程序部署在 AppFog(网站托管应用程序)上时,它无法保持会话,即用户登录到应用程序,但是,当他点击任何链接时,他被重定向回到登录页面。

这是因为我创建了一个拦截器(SessionInterceptor)来检查每个请求上的用户会话,在会话过期的情况下将应用程序重定向到登录页面。以下是我在SessionInterceptor类的preHandle()方法中编写的代码:

@Override
public boolean preHandle(HttpServletRequest request,
        HttpServletResponse response, Object handler) throws Exception {
    HttpSession session = request.getSession();
    if(!(handler instanceof HomeController || handler instanceof ForgetPasswordController)) {
        if(session.getAttribute("user") == null) {
            response.sendRedirect(request.getContextPath()+"/"+redirectMapping+"?msg=e");
            return false;
        } else {
            return true;
        }
    } else {
        return true;
    }
}

我不知道为什么AppFog会发生这种情况。任何帮助感激不尽。提前谢谢!

1 个答案:

答案 0 :(得分:0)

AppFog支持哪种servlet规范?如果我没错,servlet> = 2.3

支持spring mvc Interceptor