0

我正在尝试使用他们的 Neo4j 插件在 Heroku 上开发 Neo4J 云应用程序。我仍在尝试几个功能,所以它只是一个演示应用程序,但我已经遇到了问题。

我的应用程序是这样构建的:我有一个主页,其中包含一个表格,其中显示了连接到参考节点的所有节点。在这个主页上有一个添加随机节点的链接。

我的 servlet 中定义了两个操作,它们执行以下操作:

主页.do

request.setAttribute("testuser", "test");
DataAccess da = new DataAccess();
request.setAttribute("NodeBeans", da.getAllNodes()); 

request.setAttribute("pageheader", "header");
request.setAttribute("pagecontent", "home");
request.setAttribute("pagefooter", "footer");
request.getRequestDispatcher("/master.jsp").forward(request, response);

最后三个参数是包含在 master.jsp 中的文件名(没有 jsp),使用 .

Addnode.do的作用完全相同,只是它更改了 testuser 的值,并且在设置 NodeBeans 属性之前它执行以下操作:

da.createRandomNode();

这基本上为数据库创建了一个随机节点。

在当地,这一切都像一个魅力。当我推送到 Heroku 时,出现了问题。

当我打开时,它仍然打开到"bla.herokuapps.com/home.do",这很好。它向我显示了节点表。当我单击添加节点的链接时,URL 确实更改为“bla.herokuapp.com/addnode.do”,它应该添加一个节点,但它没有。testuser 属性也随着“addnode.do”操作而改变,但是确实改变了。当我在 url 设置为"bla.herokuapps.com/addnode.do"时刷新页面时,它确实添加了一个节点,并在表中显示了这个新节点。

所以页面之间的整个切换效果很好。唯一的问题是,在您刷新页面之前,单击 addnode 链接不会在 Neo4j 数据库中创建新节点。

供参考:我正在使用 neo4j-rest-graphdb 与数据库对话。它是一个远程客户端库,用于与其余 api 对话。

4

1 回答 1

1

找到了。使用 firebug 调试后,页面似乎根本没有重新加载。只是缓存的页面再次显示。

您必须使用以下三行代码在控制器中手动关闭缓存:

response.setHeader("Cache-control", "no-cache, no-store");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "-1");
于 2013-03-26T10:51:34.057 回答