在Spring-MVC中使用Sessions

时间:2018-05-10 13:06:47

标签: spring spring-mvc spring-session

由于我刚接触弹簧MVC,我仍然坚持这个问题。 我正在尝试使用会话范围,我希望在http会话中跨多个控制器共享一个列表。但我不希望这个会话由不同的http会话共享。每个http会话都应该有自己的列表(存储),在其控制器之间共享。

我面临的问题是,此列表在并行运行的所有请求之间共享。 例如。如果我在我的机器上按下控制器并且有其他请求到来 从另一台机器,他们都使用相同的列表(会话存储)

这是MySession类,它包含一个需要在多个控制器之间共享的List,每个控制器都可以对此列表进行操作。

@Component
@Scope("session")
public class MySession
{
   public List<String> mylist;
}

这是我的控制器使用MySession类对象,类似地,还有其他控制器可以在会话中更新List。

@Controller
@Scope("request")
public class SessionController
{
   @Autowired
   private MySession mySession;

   @RequestMapping("/updateSession")
   public ModelAndView  updateSession(@RequestParam("id") int id)
   {
      //Operation on List(add remove items)
   }  
}

所以现在发生的事情是MySession中的List正在影响我的其他一些请求,因为我认为所有并发请求都使用相同的列表。

请帮助我,如果有什么我遗漏的话,我怎么能解决这个问题 要求任何修改。 提前谢谢。

0 个答案:

没有答案