jsp - 如何跨多个 JSP 页面共享 EmbeddedGraphDatabase 实例?

标签 jsp tomcat neo4j embedded-database

有什么方法可以跨多个 JSP 页面共享 EmbeddedGraphDatabase 实例? 问题是,一旦您启动 tomcat 服务器并为特定的 Neo4j DB 实例化 EmbeddedGraphDatabase,如果您尝试为相同的实例化另一个 graphDB,数据库将保持锁定状态。

最佳答案

据我所知,EmbeddedGraphDatabase 是您的对象,您希望它的实例在应用程序的多个 JSP 页面中共享。

您需要将它的实例放入应用程序范围内,并且它将对您应用程序的所有类和 JSP 页面可见。

为此,您需要实现 ServletContextListener 接口(interface):

public class YourContextListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent event) {
       EmbeddedGraphDatabase db = new EmbeddedGraphDatabase();
       event.getServletContext().setAttribute("yourAttrName", db);
    }

    @Override
    public void contextDestroyed(ServletContextEvent event) {
       event.getServletContext().removeAttribute("yourAttrName");
    }
}

在web.xml中定义

<listener>
    <listener-class>your.package.YourContextListener</listener-class>
</listener>

要使用它:

EmbeddedGraphDatabase db = getServletContext().getAttribute("yourAttrName");

希望这对您有所帮助。

关于jsp - 如何跨多个 JSP 页面共享 EmbeddedGraphDatabase 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10970073/

相关文章:

javascript - 如何在我复制到另一个表的行的开头放置删除按钮

spring - request.getServletPath() 从 Spring MVC 返回 null

java - 在jsp中获取struts.xml Action 名称

linux - Neo4j 在 Linux 或 Windows 上更好地工作?

neo4j - 带有后备翻译的 ORDER BY 的密码查询

jsp - 如何从servlet发送消息并在jsp中显示

java - 如何每天在特定时间使用java发送邮件

java - 为 tomcat 7 部署设置 gxt 项目

java - 为什么在 JSTL el 表达式中转义引号时出现 JSP 错误 "attribute for "未正确终止?

recursion - 带有子图聚合的递归查询(任意深度)