0

我刚刚开始使用 displayTag 来存储来自数据库查询的整个对象结果集,并在 JSP 中以分页格式显示它们。

我发现我必须将整个结果集存储在 HttpSession 中,否则 displayTag 会丢失前进到下一页的数据。

我的问题/关注是将这个大对象图存储在会话中。我应该在用户离开使用 displayTag 的 JSP 后手动清理会话吗?或者也许我错过了一些东西。如果我可以将我的结果集存储在请求中并让 displayTag 管理这些对象的内存,那就太好了。

谢谢

4

1 回答 1

0

显示标签只使用来自页面上下文的值,它可以是页面、请求、会话或应用程序范围中的任何一个。当我完成您所描述的事情时,我使用了请求范围,这避免了您所描述的问题 - 如果您想在用户会话中缓存对象,除了超时来控制它们停留多长时间之外别无他法. 会话中的缓存并不是那么好,因为用户可能只是盯着该页面 10 分钟,而该结果集仅位于您的服务器上占用空间。

如果你真的必须缓存,最好全局缓存,如果你能找到一种方法让你的数据以某种方式在用户之间共享。另一种选择可能是仅提取特定请求所需的数据 - 例如,分页不是通过加载整组行并显示子集,而是仅加载单个子集。

于 2010-02-18T02:32:50.590 回答