配置:tomcat5.5mysql-4.1.13-win32JDBC驱动mysql-connector-java-3.1.12 ,dcbp1.1, collections, pool1.1文件都在tomcat_home\common\lib目录下!下面是我的sever.xml文件的配置<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
<GlobalNamingResources>
<Context path="/ch14" reloadable="true" docBase="ch14" debug="0" releadable="true" crossContext="true">
<Resource name="jdbc/mysql/sql_test" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/mysql/sql_test">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<Parameter>
<name>maxIdle</name>
<value>30</value></Parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value>1001507</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/sql_test</value>
</parameter>
</ResourceParams>
</Context>
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" /> </GlobalNamingResources>
<Service name="Catalina">
<Connector
port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
<Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host> </Engine> </Service>
</Server>
-----------------------------------------------------------------------------------------
这个是web.xml文件配置:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<description>JSP中的高级数据库应用实例</description>
<resource-ref>
<description>DataSource</description>
<res-ref-name>jdbc/mysql/sql_test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
数据库里的信息在网页上显示不出来!哪里错了,求各位高手指点!!
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
<GlobalNamingResources>
<Context path="/ch14" reloadable="true" docBase="ch14" debug="0" releadable="true" crossContext="true">
<Resource name="jdbc/mysql/sql_test" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/mysql/sql_test">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<Parameter>
<name>maxIdle</name>
<value>30</value></Parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value>1001507</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/sql_test</value>
</parameter>
</ResourceParams>
</Context>
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" /> </GlobalNamingResources>
<Service name="Catalina">
<Connector
port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
<Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host> </Engine> </Service>
</Server>
-----------------------------------------------------------------------------------------
这个是web.xml文件配置:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<description>JSP中的高级数据库应用实例</description>
<resource-ref>
<description>DataSource</description>
<res-ref-name>jdbc/mysql/sql_test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
数据库里的信息在网页上显示不出来!哪里错了,求各位高手指点!!
tomcat安装路径为D:\tomcat5,在D:\下的webapps下建立自己的web application。偶建的名为:myapps。然后在自己的中建立WEB-INF,建议从D:\tomcat5\webapps\jsp-examples\下将WEB-INFCopy过来,其中已经配置好了相关设置,特别是加入了jsp2.0这个新东东。现在的结构应该为:
D:\tomcat5
|------ \webapps
|------- \myapps
|------\WEB-INF
现在开始为DBCP做准备工作。将你想配置的database 的JDBC放到D:\tomcat5\common\lib下,注意一定要放”.jar”的文件,如是“.zip”的文件直接改为.jar即可。本例是用一个Oracle的jdbc,偶将classes111.zip更名为classes111.jar放到这里。 下面开始配置xml文件:
1. 对server.xml的配置:
用(你习惯的)文本编辑器打开D:\tomcat5\conf\server.xml,找到<Context path="" docBase="ROOT" debug="0">将它改为以下形式,并加入Oracle的设置信息。
<Context path="/myapps" docBase="myapps" debug="5" reloadable="true" crossContext="true"> <Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_DBTest_log." suffix=".txt"
timestamp="true"/>
<!-- Oracle -->
<Resource name="jdbc/myoracle" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/myoracle"><!-- myoracle是自己起的名子,对应到web.xml中也要用这个名子,以及JSP页面中。 -->
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@127.0.0.1:1521:accp</value><!-- accp为你的数据库名称 -->
</parameter>
<parameter>
<name>username</name>
<value>scott</value>
</parameter>
<parameter>
<name>password</name>
<value>tiger</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
</ResourceParams>
<!-- Oracle end -->
</Context>
<!-- my DBCP is end --> 2.然后再打D:\tomcat5\webapps\myapps\WEB-INF\下的web.xml,加入以下东东:
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/myoracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
( 注意要在</web-app>之前加, 而不是在<web-app之前加,不加也可。当我加到</web-app>前面时,start tomcat出错,即如下格式时出错:
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/pdm</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
应将该段代码加到resource mail/session 下面 即如下格式:
<resource-ref>
<res-ref-name>mail/Session</res-ref-name>
<res-type>javax.mail.Session</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<!?oracle dbcp-->
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/pdm</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
)
OK!配置工作已经完成了。下面就是写一个JSP代码进入测试了。
在D:\tomcat5\webapps\myapps\下编写一个test.jsp,内容如下:
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.*"%> <%
DataSource ds = null;
try{
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource)envCtx.lookup("jdbc/myoracle");
if(ds!=null){
out.println("Connection is OK!");
Connection cn=ds.getConnection();
if(cn!=null){
out.println("cn is Ok!");
Statement stmt = cn.createStatement();
ResultSet rst = stmt.executeQuery("select * from BOOK");
out.println("<p>rst is Ok!" + rst.next());
while(rst.next()){
out.println("<P>BOOK_CODE:" + rst.getString(1));
}
cn.close();
}else{
out.println("rst Fail!");
}
}
else
out.println("Fail!");
}catch(Exception ne){ out.println(ne);
}
%>
<Context
crossContext="true"
path="/limit"
reloadable="true"
workDir="limit">
<Resource
auth="Container"
name="jdbc/limit"
type="javax.sql.DataSource"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
password="sa"
maxIdle="30"
maxWait="5000"
validationQuery="select 1"
username="sa"
url="jdbc:microsoft:sqlserver://1.1.1.2:1433;DatabaseName=share"
maxActive="100"
removeAbandoned="true"
removeAbandonedTimeout="300"
logAbandoned="true"
/>
http://www.matrix.org.cn/resource/article/44/44021_tomcat_sql2000.html