保持对象通过页面

Alk*_*ris 3 java persistence load servlets

我正在开发一个网络项目.流程是这样的

  1. 用户输入参数
  2. 调用servlet(post方法)
  3. servlet在树对象中加载一个大文件(300.000行,每行一个单词).做一些计算.
  4. 重定向到结果的新页面.

我的问题是这个.用户可以多次执行此操作.将文件加载到树对象花费的时间太长.我怎么能这样做,只有一次?我曾经想过只有一个servlet(或jsp)并没有重定向到不同的页面,而是用javascript操纵视图.这样我认为我将只设置加载文件一次(并且每当用户刷新时).你有什么建议吗?

编辑1.此对象由从servlet调用的类创建.我正在使用apache tomcat 7和java 1.6.HTML5也是一个选项(有人提到历史api).

tgk*_*rog 6

该文件是否特定于用户?将对象保留在用户的会话中.

如果它对许多用户来说是共同的,他们只需要读取/查看这些数据就可以将它保存在应用程序对象中.

如果您谈论视图 - >浏览器,那么是的方法是ajax和/或框架和/或iframe

使用框架的优点是您可以将数据保存在另一个文件夹中并仍然可以从其他页面访问它,但是将主视图区域完全更改为另一个页面


详细说明 用户会话:可在servlet,过滤器,jsps等中使用 - >关键对象对.可以拥有任意数量的键和对象,但记住它在RAM中的所有内容,直到会话过期或明确销毁.

http://docs.oracle.com/cd/E19502-01/819-3669/bnaij/index.html

如何在Servlet中使用"应用程序"对象?

应用程序级别http://docs.oracle.com/javaee/5/api/index.html?javax/servlet/jsp/PageContext.html get和setAttribute(String name,Object object)此对象可以在所有页面中读取JSP页面.在执行初始化任务之前,需要注意对象是否已存在(getAttribute不返回null).主文件是否会更改?如果这样可以保留一些调用jsps刷新它的代码.(像管理员jsp)

Frames/ajax是针对客户端级别的,你需要为此提出一个更具体的问题,但堆栈流量和谷歌有很多使用它的例子.