最近我参加了一次采访,我被问到这个问题
您如何决定是使用模型还是会话来保存或传递应用程序中的数据?
我无法回答这个问题,因为我在这方面的理解完全是零。 后来我搜索了很多,并且发现了一些文章,其中显示了使用@Modelattribute和@Sessionattribute及其用法。 但我想知道如何在模型和会话的使用之间进行选择?存储在会话中并将其添加到模型中有什么区别? 会话中的设置和模型中的设置之间是否存在任何关系?
答案 0 :(得分:0)
因此,在模型 - 视图 - 控制器中,您通常会在控制器中存储模型属性。然后,您就可以在视图层(JSP或其他一些视图呈现技术)中检索这些属性。但是这些属性通常仅在HTTP请求期间存在。在呈现视图并将其呈现给用户之后,我们不再具有这些模型属性。
另一方面,会话属性在用户会话期间存在。
所以用一个例子回答你的问题......
假设我们有一个控制器负责在网站上显示待售物品。
当用户请求页面时,控制器将:
查询数据库并查找符合用户标准的所有项目
将项目添加到模型并返回视图
在视图(JSP)中,我们可以检索模型并显示模型属性以及HTML / CSS以呈现用户看到的页面
另一方面......如果我们在用户会话的整个生命周期中都有需要提供的信息怎么办?就像购物车中所有商品的总成本一样?我们应该将其存储为会话属性,以便我们可以访问它并在每个HTTP请求上显示它