model vs session - 哪一个用于java应用程序来存储数据?

时间:2017-10-22 11:46:13

标签: java session model-view-controller model

最近我参加了一次采访,我被问到这个问题

  

您如何决定是使用模型还是会话来保存或传递应用程序中的数据?

我无法回答这个问题,因为我在这方面的理解完全是零。 后来我搜索了很多,并且发现了一些文章,其中显示了使用@Modelattribute和@Sessionattribute及其用法。 但我想知道如何在模型和会话的使用之间进行选择?存储在会话中并将其添加到模型中有什么区别? 会话中的设置和模型中的设置之间是否存在任何关系?

1 个答案:

答案 0 :(得分:0)

因此,在模型 - 视图 - 控制器中,您通常会在控制器中存储模型属性。然后,您就可以在视图层(JSP或其他一些视图呈现技术)中检索这些属性。但是这些属性通常仅在HTTP请求期间存在。在呈现视图并将其呈现给用户之后,我们不再具有这些模型属性。

另一方面,会话属性在用户会话期间存在。

所以用一个例子回答你的问题......

假设我们有一个控制器负责在网站上显示待售物品。

当用户请求页面时,控制器将:

  1. 查询数据库并查找符合用户标准的所有项目

  2. 将项目添加到模型并返回视图

  3. 在视图(JSP)中,我们可以检索模型并显示模型属性以及HTML / CSS以呈现用户看到的页面

  4. 另一方面......如果我们在用户会话的整个生命周期中都有需要提供的信息怎么办?就像购物车中所有商品的总成本一样?我们应该将其存储为会话属性,以便我们可以访问它并在每个HTTP请求上显示它