【问题标题】:JasperPrint object in HTTP sessionHTTP 会话中的 JasperPrint 对象
【发布时间】:2012-12-03 10:34:04
【问题描述】:

许多示例/教程/书籍建议在 HttpSession 中保留 JasperPrint 对象来实现:

  • 通过 ImageServlet 在 HTML 报告中呈现图像
  • Web 应用程序中的报表分页

但我想知道这是否是最佳做法。纠正我,我的猜测是 JasperPrint 对象不是要保留在会话中的微不足道的对象。

任何关于堆使用的经验或基准标记细节以及会话中使用 jasperPrint 可能每个节点执行多少并发报告将不胜感激。

在不将 jasperPrint 对象保留在会话中的情况下,是否有其他替代方法可以实现此目的?

我们正在使用带有 JSF 前端的动态报告 API。

【问题讨论】:

    标签: jsf jasper-reports dynamic-reports


    【解决方案1】:

    将它保存在内存中有什么问题? 如果您不需要该对象,可以使用

    将其删除
    FacesContext.getCurrentInstance()
                .getExternalContext()
                .getSessionMap()
                .remove("#{YourSessionBean}");
    

    【讨论】:

    • jasperprint 对象包含整个报表的数据(有效)。现在你可以想象这个问题,特别是在多用户场景中,它会膨胀 JVM 堆内存。当然我们可以删除,但它不会解决我上面提到的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-14
    相关资源
    最近更新 更多