setDataSource标签用于生成一个数据源,需要制定JDBC驱动、数据库连接URL、数据库用户名密码等,例如:
setDataSource.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<sql:setDataSource driver="com.mysql.jdbc.Driver" user="root"
password="123"
url="jdbc:mysql://localhost:3306/jstl?charachterEncoding=UTF-8"
var="dataSource" scope="page" />
<sql:setDataSource dataSource="jdbc/jstl" var="serverDataSource" />
数据源:${ dataSource.class.name }
${ serverDataSource }
</body>
</html>
var用户指明数据源的名称,以供其他的sql标签使用。程序中输出了JSTL创建的数据源的类名:org.apache.taglibs.standard.tag.common.sql.DataSourceWrapper
。创建了数据源就可以进行数据库读写操作了。
setDataSource标签还支持JNDI数据源。可以通过dataSource属性制定JNDI名称,数据库信息都写在JNDI配置里,例如
<sql:setDataSource dataSource="jdbc/jstl" var="serverDataSource"/>
JNDI数据源需要在服务器中配置。Tomcat6中配置数据源的方法为:在Web应用的/WEB-INF/下新建context.xml文件(与web.xml同一个位置),配置代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/jstl1" type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="5"
maxWait="5000"
username="root"
password="123"
url="jdbc:mysql://localhost:3306/jstl1?characterEncoding=UTF-8"
maxActive="10"
/>
</Context>
程序运行结果如下: