一尘不染

使用web.xml获取JSTL sql数据源?

jsp

试图获取用于JSTL SQL操作的数据源,但它不会连接。

在我的web.xml

<context-param>
    <param-name>databaseJNDI</param-name>
    <param-value>jdbc/testDS</param-value>
</context-param>

我在JSP文件中尝试的操作:

<sql:setDataSource dataSource = "jdbc/testDS"/>

我正在尝试执行此操作,但为了避免将数据库凭据硬编码到页面中而失败。数据库正在运行,但是我对JSTL的了解还不足以立即自己解决这个问题。

它在抱怨驱动程序,但是我对servlet使用了相同的设计,但没有指定驱动程序来访问数据库。

对我的问题有任何见解吗?知道我的运气,这可能很简单。


阅读 211

收藏
2020-06-10

共1个答案

一尘不染

使用initParam您可以获得上下文参数。

创建context-paramsweb.xml数据库连接属性:

<context-param>
    <param-name>driverClass</param-name>
    <param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
<context-param>
    <param-name>connectionURL</param-name>
    <param-value>jdbc:mysql://localhost/dbname</param-value>
</context-param>
<context-param>
    <param-name>username</param-name>
    <param-value>foo</param-value>
</context-param>
<context-param>
    <param-name>password</param-name>
    <param-value>bar</param-value>
</context-param>

在JSP中使用

<sql:setDataSource var="dataSource" 
   driver="${initParam['driverClass']}"
   url="${initParam['connectionURL']}" 
   user="${initParam['username']}"
   password="${initParam['password']}" />
2020-06-10