我正在使用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上会发生这种情况。任何帮助表示感谢。提前致谢!

最佳答案

AppFog支持哪种servlet规范?如果我没看错,则servlet> = 2.3上支持spring mvc Interceptor

09-20 19:55