我有三台运行Tomcat 7的不同服务器。我正在使用JDK 7和Spring框架。
在我的开发和生产环境中,一切都运行顺利,但是在第三台机器上,我遇到了检测会话的问题。
在第三台服务器上,初始页面打开正常,但以下代码行返回null。
@RequestMapping(value="/getCaptcha",method=RequestMethod.POST)
public @ResponseBody OutputStream getCaptchaImage(HttpServletRequest request, HttpServletResponse response) throws IOException{
String stToken = request.getParameter("token");
OutputStream os = null;
try{
HttpSession httpsession = request.getSession(false);
System.out.println("HttpSession: "+httpsession);
if(httpsession != null){
...
}
}
catch(Exception e){
e.printStackTrace();
}
return os;
}
这里HttpSession为空,它无法检测我之前使用
设置的会话 HttpSession httpsession = request.getSession(true);
除此之外,在我的整个项目中,即使先前已设置会话,request.getSession(false)也会返回null。
我不确定我是否遗漏了某些内容,因为相同的代码在其他两台服务器上运行完美。任何帮助/指导/建议将受到高度赞赏。
答案 0 :(得分:0)
您可以在Spring MVC的请求方法中简单地声明HTTP会话
@RequestMapping("/signup")
public void handleMyRequest(HttpSession session, ...) {
...
}
不确定,是否符合您的要求。我为我的项目做了。