保持对象页面
我正在开发一个web项目。流动是这样保持对象页面
- 用户输入
- 电话的servlet由与参数(后方法)
- 该servlet加载在一个树对象一个大文件(300.000行,每行一个字)。做一些计算。
- 重定向到结果的新页面。
我的问题是这样的。用户可以多次执行此操作。将文件加载到树对象的时间太长。我怎么能这样做,只有一次? 我以为只有一个servlet(或jsp),而不是重定向到不同的页面,但 用javascript操纵视图。通过这种方式,我认为我将只能加载文件一次(以及每当用户刷新时)。你有什么建议吗?
编辑1.该对象由从servlet调用的类创建。我使用的是Apache Tomcat 7和Java 1.6。 HTML5也是一个选项(有人提到历史api)。
该文件是特定于用户?将该对象保留在用户的会话中。
如果它对于很多用户来说很普通,而且他们只需要读取/查看这些数据就可以将它保存在应用程序对象中。
如果你谈论的视图 - >浏览器然后是做的方法就是Ajax和/或帧和/或iFrame
优势与框架是你可以保持数据的另一farme,仍然从访问其他页面,但改变主视图区到另一个页面完全
详细 用户会议:在Servlet中使用,过滤器的JSP等等 - >关键对象对。可以有任意数量的键和对象,但是在RAM中记住它的全部内容,直到会话过期或明确销毁。
http://docs.oracle.com/cd/E19502-01/819-3669/bnaij/index.html
How to use the "application" object in a Servlet?
应用水平http://docs.oracle.com/javaee/5/api/index.html?javax/servlet/jsp/PageContext.html获得和setAttribute(字符串名,对象物体) 这个对象可以在所有页面和JSP读取。在执行初始化任务之前,如果对象已经存在(getAttribute不返回null),需要注意。主文件是否更改?如果可以保留一些调用jsps的代码来刷新它。 (像一个管理员jsp)
框架/ ajax是为客户端级别,你需要问一个更具体的问题,但堆栈溢出和谷歌有很多使用这个例子。
这对用户来说很常见。 “将它保留在应用程序对象中”是什么意思? – alkis 2013-04-26 16:02:49
@alkis它意味着将对象保存在应用范围a.k.a. ['ServletContext'](http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html)中。 – 2013-04-26 16:11:35
你的回答很好,请改善一点。 – 2013-04-26 16:12:24
有两个问题:首先,这是[tag:java]还是[tag:javascript]问题?其次,我们能否看到一些相关的代码? – Zyerah 2013-04-26 15:56:24
这是一个java问题。没有代码。问题是我如何通过页面更改保持对象持久性。 – alkis 2013-04-26 16:00:45
在这种情况下,我强烈建议使用[单页应用程序](http://addyosmani.com/blog/building-spas-jquerys-best-friends/)。 – Ikrom 2013-04-26 16:10:59