Heroku仅适用于刷新
我试图在Heroku上开发一个Neo4J Cloud应用程序,使用它们的Neo4j插件。我仍然尝试了几个功能,所以它只是一个演示应用程序,但我已经遇到了一个问题。Heroku仅适用于刷新
我的应用程序是这样构建的: 我有一个表格显示连接到参考节点的所有节点。在这个主页上有一个链接添加一个随机节点。
有我的servlet定义了两个行动,做到以下几点:
Home.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);
其中最后三个参数是文件名(不含JSP),它包括在master.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交谈。
找到它。使用萤火虫进行调试后,看起来页面根本没有被重新加载。只是缓存页面再次显示。
你必须在你的控制器使用以下三行代码手动关闭缓存:
response.setHeader("Cache-control", "no-cache, no-store");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "-1");