我想在应用程序web.xml文件中存储数据库连接信息,并在应用程序中获取它。我读到某个地方,我可能不知道怎么做。
任何想法?
谢谢!
答案 0 :(得分:4)
1)根据您的应用程序服务器或容器管理的服务器,创建一个连接池。
2)在web.xml中链接资源池
e.g。 (Tomcat 5.5及更高版本)。
我的连接池中有一个Example_DS(数据源),在这里我在 web.xml
中分享它<resource-ref>
<description>Database Connection for Example</description>
<res-ref-name>jdbc/Example_DS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
这与我在Web应用程序上 context.xml (在META-INF文件夹中找到)上创建的资源相匹配。仍在使用Tomcat。
<Resource name="jdbc/Example_DS" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="YOURUSERNAMEHERE" password="YOURPASSWORDHERE" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/DATABASEHERE?autoReconnect=true"
removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"
testOnBorrow="true" validationQuery="SELECT 1" />
显然,你可以看到我在这里使用MySQL。
<Resource />
允许您创建连接池(在Tomcat中)
在JBoss ....
1)创建一个Example_DS.xml文件,其中Example是数据源的名称。
E.g。
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>Example_DS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/DATABASEHERE?autoReconnect=true</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>YOURUSERNAMEHERE</user-name>
<password>YOURPASSWORDHERE</password>
<min-pool-size>0</min-pool-size>
<max-pool-size>100</max-pool-size>
<idle-timeout-minutes>2</idle-timeout-minutes>
<track-statements>false</track-statements>
</local-tx-datasource>
</datasources>
然后使用我之前放弃的<resource-ref>
将其映射到Jboss中的DS。在/ server / default / deploy /文件夹中部署DS.xml文件并重新启动JBoss。
完成后,您可以使用Context在Java中调用它。
答案 1 :(得分:1)
您将它们作为context-param
添加到您的web.xml:
<context-param>
<description>My variable</description>
<param-name>variable.name</param-name>
<param-value>value</param-value>
</context-param>
然后在servlet中,在ServletContext上调用getInitParameter()
:
String variable = getServletContext().getInitParameter("variable.name");