如何在sql:setdatasource中在context.xml和web.xml中定义datasource

时间:2015-11-23 00:34:43

标签: mysql jsp jstl

我正在尝试使用sql:setdatasource在我的jsp页面中使用context.xml和web.xml中定义的数据源。

我已经能够使用以下内容直接指定连接:

<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/bar_db" user="foo"  password="bar123"/>
<sql:query var="result" dataSource="${snapshot}">
SELECT * FROM foo_tb
</sql:query>

我想使用web.xml和context.xml从这个文件中获取用户名,密码和网址。

使用类似的东西:

<sql:setDataSource var="conn" dataSource="jdbc/bar_db" 

这是我试过的 -

Web.xml中

<web-app ...> ...
<resource-ref>
    <description>DB Conn</description>
    <res-ref-name>jdbc/bar_db</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-app>

context.xml中

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/FieldNotifications">
<Resource auth="Container" 
        driverClassName="com.mysql.jdbc.Driver" 
        maxActive="20" 
        maxIdle="8" maxWait="10000" 
        name="jdbc/bar_db" 
        password="bar123" 
        type="javax.sql.DataSource" 
        url="jdbc:mysql://localhost:3306/bar_db" 
        username="foo"/>
</Context>

我使用以下工具:Netbeans 8.1,MySQL 5.7,Connector / J

更新 寻找除initParams以外的东西,但这是我目前的止损。

我创建了context-params&amp;我现在使用以下内容:

<context-param>
    <param-name>dbaddress</param-name>
    <param-value>jdbc:mysql://localhost:3306/bar_db</param-value>
</context-param>
<context-param>
    <param-name>dbuser</param-name>
    <param-value>foo</param-value>
</context-param>
<context-param>
    <param-name>dbpassword</param-name>
    <param-value>bar123</param-value>
</context-param> 

在JSP中,我使用

<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
   url="${initParam['dbaddress']}" user="${initParam['dbuser']}"
   password="${initParam['dbpassword']}"/>

问题依然存在:

如何使用context.xml和web.xml设置数据源? 通过定义资源或连接池。不知怎的,司机无法进入。

0 个答案:

没有答案