我刚刚开始使用displayTag来存储来自数据库查询的整个对象结果集,并在JSP中以分页格式显示它们。
我发现我必须将整个结果集存储在HttpSession中,否则displayTag会丢失前进到下一页的数据。
我的问题/关注点是在会话中存储这个大型对象图。在用户离开使用displayTag的JSP之后,我应该手动清理会话吗?也许我错过了什么。如果我能将我的结果集存储在请求中,并让displayTag管理这些对象的内存,那就太好了。
谢谢
发布于 2010-02-18 10:32:51
display标记只使用来自页面上下文的值,可以是任何page, request, session, or application作用域。当我做了你所描述的事情时,我使用了请求作用域,这避免了你所描述的问题-如果你想在用户会话中缓存对象,除了超时之外没有其他方法来控制它们停留的时间。会话中的缓存并不是很好,因为用户可能只是盯着该页面看了10分钟,而结果集只是在您的服务器上占用空间。
如果你真的必须缓存,如果你能找到一种方法让你的数据在用户之间以某种方式共享,那么全局缓存可能会更好。另一种选择可能是仅提取特定请求所需的数据-例如,分页不是通过加载整个行集并显示子集,而是仅加载单个子集。
https://stackoverflow.com/questions/2285818
复制相似问题