Can JSTL use connection pool? Can anyone give an example scripts and configuration files?

JSTL allows you to use the traditional Driver based approach or a DataSource implementation. The configuration is done either via the Web.xml file or using the JSTL API.

<sql:setDataSource> has the following attributes:

Attribute Description Required Default
driver Name of the JDBC driver class to be registered No None
url JDBC URL for the database connection No None
user Database username No None
password Database password No None
dataSource Database prepared in advance (String or
javax.sql.DataSource)
No None
var Name of the variable to represent the database No Set default
scope Scope of the variable to represent the database No page

Here are some samples

1. Use a database URL
The connection tag accepts a database URL that can obtain a Connection through Driver Manager:
<%-- open a database connection --%>
<sql:connection id="conn1">
<%-- required --%>
<sql:url>jdbc:mysql://localhost/test</sql:url>
<%-- optional --%>
<sql:driver>org.gjt.mm.mysql.Driver</sql:driver>
<%-- optional --%>
<sql:userId>root</sql:userId>
<%-- optional --%>
<sql:password>notVerySecure</sql:password>
</sql:connection>
The "id" attribute is required by every "connection" tag. After the end tag, a java.sql.Connection object will be added as a pageContext attribute, and it can then be referenced by other tags, including statement, preparedStatement, and closeConnection.
Instead of including your database URL, driver name, user id, or password inside your tag body, you may optionally use the "initParameter" attribute:
<%-- store your connection info in the web.xml file --%>
<sql:connection id="conn1">
<sql:url initParameter="dbURL"/>
<sql:driver initParameter="mysqlDriver"/>
<sql:userId initParameter="dbUserId"/>
<sql:password initParameter="dbPassword"/>
</sql:connection>
2. Use a DataSource object
The connection tag also accepts a reference to a Servlet attribute containing a javax.sql.DataSource object. (The attribute is found via the findAttribute() method of PageContext.):
<%-- open a database connection --%>
<sql:connection id="conn1" dataSource="ds1">
<%-- optional --%>
<sql:userId>root</sql:userId>
<%-- optional --%>
<sql:password>notVerySecure</sql:password>
</sql:connection>
3. Use a JNDI named JDBC DataSource
The Connection tag also accepts a JNDI named JDBC DataSource.
<%-- open a database connection --%>
<sql:connection id="conn1" jndiName="java:/comp/jdbc/test"/>