0

我需要在浏览器窗口上显示非常大的日志文件(2GB - 5GB)的内容。

如果我将日志文件从控制器发送到 JSP,并从 JSP 将内容设置为 window.open,那么加载页面会非常痛苦。

或者,如果我将日志文件的全部内容设置为服务器端(控制器)中的 StringBuilder 并将其发送回 JSP,则页面需要等待一段时间,直到所有日志都设置为 StringBuilder。

所以我想在每次调用中向 JSP 发送一大块数据。

示例:在从 JSP 到 Controller 的第一次调用中,我将发回前 20 行 在从 JSP 到 Controller 的第二次调用中,我将发回接下来的 20 行

或者有没有其他最好的方法可以做到这一点?

请帮我解决这个...

4

1 回答 1

0

您可能想要做的设置一个控制器来获取大小和开始位置

第 1 页将是 http://www.site.com/_internal/logtail?characters=100000&start=0

第 2 页将是 http://www.site.com/_internal/logtail?characters=100000&start=100000

然后,您可以使用 java 中的随机访问文件查找第 N 个位置并读取 N 个字符。如果有人想要另一个页面,你增加起始位置并继续通过 ajax

http://docs.oracle.com/javase/tutorial/essential/io/rafs.html

(旁注:我经常使用 _internal 来表示受保护的 url。这是我在网站上设置的,使用 ACL 的 [访问控制列表] 来保护该 url,因此只有有限的一组人可以访问它 - 我假设你可能不希望公众看到您的日志文件。如果它是受保护的站点,您可能不必担心)

于 2013-09-24T13:50:56.547 回答