Spring MVC控制器-模型属性-可能的竞争条件?

Spring MVC控制器-模型属性-可能的竞争条件?,spring,spring-boot,spring-mvc,Spring,Spring Boot,Spring Mvc,我有一个Web筛选器,它将处理post请求,获取一个参数并在会话中设置它的值。然后在处理会话属性的另一个页面的模型中设置会话属性的值。例如 来自筛选器的代码段 if (httpServletRequest.getParameters("MY_PARAM") == null) { logger.error("Parameter is null!"); throw new IllegalArgumentException("Parameter null!"); } else {

我有一个Web筛选器,它将处理post请求,获取一个参数并在会话中设置它的值。然后在处理会话属性的另一个页面的模型中设置会话属性的值。例如

来自筛选器的代码段

if (httpServletRequest.getParameters("MY_PARAM") == null) {
    logger.error("Parameter is null!");
    throw new IllegalArgumentException("Parameter null!");
} else {
    logger.error("Parameter received redirecting to controller");
    httpServletRequest.getSession().setAttribute("MY_ATTR", httpServletRequest.getParameters("MY_PARAM"));
    //redirect code
}
然后在控制器中

@GetMapping("mypage")
public ModelAndView doStuff(HttpSession session)
    ModelAndView mav = new ModelAndView("mypage");
    mav.addObject("MY_ATTR", session.getAttribute("MY_ATTR"));

    session.setAttribute("MY_ATTR", null);

    logger.debug(mav.getModel().get("MY_ATTR") == null ? "Attribute is null" : "Attribute is set");
    return mav;
}
99%的时间日志输出为“属性已设置”,但偶尔为“属性为空”。这怎么会发生

我对控制器方法进行了更多的调试。出现此问题时,HttpSession似乎与Web筛选器中设置属性的HttpSession不同