request.getSession(false)未检测到上一个Session

时间:2016-12-28 09:30:00

标签: java spring spring-mvc session httprequest

我有三台运行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。

我不确定我是否遗漏了某些内容,因为相同的代码在其他两台服务器上运行完美。任何帮助/指导/建议将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

您可以在Spring MVC的请求方法中简单地声明HTTP会话

@RequestMapping("/signup")
public void handleMyRequest(HttpSession session, ...) {
   ...
}

不确定,是否符合您的要求。我为我的项目做了。