我正在开发一个使用 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 会发生这种情况。任何帮助将不胜感激。提前致谢!