![]() |
1
2
我最终确定了以下解决方案,包括一个sessionListener和一个servlet,其工作方式如下。sessionListener的格式如下:
每当用户登录并创建会话时,可用数据源和当前数据源的列表都会放入会话中。这是在会话级别完成的,因为数据源依赖于用户登录。现在可以从应用程序中访问它们。要更改当前数据源,我使用此简化版本创建了servlet:
} 通过这种实现,现在可以创建以下JSP:
希望它能帮助别人。 |
![]() |
2
1
在中创建数据源 ServletContextListener 把它们放在 ServletContext . |
![]() |
3
0
这种方法当然会“起作用”,但是对于每一个业务来说,一个单独的、相同的数据库的概念在我看来是错误的。当然,能够在模式中的某个地方描述业务似乎是可能的。以这种方式分离它们需要为每个业务创建一个新的数据库,其中模式只需要一个新的业务标识符。 我还认为,跨业务数据挖掘的任何可能性都将丢失,除非您将来自不同数据库的数据ETL到用于特殊报告和查询的维度多维数据集。 JSTL<SQL>标记只能用于最简单的Web应用程序。当您放弃中间层的验证时,您就有可能受到SQL注入攻击。 更新: 您必须在web.xml afaik中声明资源,因此每当您有一个新的数据库时,都必须停止应用程序,配置新的JNDI源,然后重新启动Tomcat。我希望您是集群的,因为每次添加新的业务/数据库时,所有以前的客户机都会受到应用程序关闭的影响。 |
![]() |
Alfonso Tienda Arslan Bajwa · Tomcat中的Java JNDI:全局资源上的BeanCreationException/NamingException。查找全局资源返回的同一类 7 年前 |
![]() |
Dherik · 在多模块项目中通过本地接口查找EJB 7 年前 |