JDK 1.5
Tomcat 5.0.30
SQLServer2000
---------------------------------------------------------------------------------------
%TOMCAT_HOME%\conf\Server.xml結構分析
<Server>
<Service>
<Connector></Connector>
<Engine>
<Host>
<Context></Context>
</Host>
</Engine>
</Service>
</Server>
|
<Server><!--頂層元素,是Tomcat實例的頂層元素,可包含一個或多個Service-->
<Service><!--連接器元素,包含一個Engine元素,以及一個或多個Connector元素,這些 Connector共享同一個Engine-->
< Connector>< !--實際和客戶交互的組件-->
< Engine>< !--容器類元素,可以包含多個Host元素-->
< Host>< !--定義一個虛擬主機,它可以包含一個或多個Web應用-->
< Context>< !--使用最頻繁的元素,每個Context代表運行在虛擬主機上的應用-->
嵌套類元素可以加到容器組件中如:< Logger>< Value>< Realm>元素
Context元素功能分析
在 [installdir]\webapps 目錄下創建一個名為 blog 的子目錄。然后在 blog 子目錄下,創建標準的 Web 應用程序目錄結構:
[installdir]\webapps\blog
[installdir]\webapps\blog\WEB-INF
[installdir]\webapps\blog\WEB-INF\classes
[installdir]\webapps\blog\WEB-INF\lib
|
接下來,添加指向 Web 應用程序的 context。context 只是一個別名,它告訴 Tomcat 在哪里可以訪問 Web 應用程序。我們的 context 路徑將是 /blog,它將指向我們剛剛創建的 blog 子目錄。在用戶輸入 http://localhost:8080/blog 后,將轉至 webapps 下的頂級 banner 目錄。如果他想運行我們的 BlogServlet(將存在于 WEB-INF/classes 目錄中),他可以使用 http://localhost:8080/blog/servlet/BlogServlet。
要添加 /blog context,首先,我們需要編輯 Tomcat conf 目錄中的 server.xml 文件。在接近該文件底部的位置,您會看到幾個 context 標記。那里應該有一個用于 /admin 的 context 和一個用于 /examples 的 context。請添加以下 context 標記:
<!-- BannerAd Context -->
<Context path="/blog" docBase="blog"
debug="0" reloadable="true" crossContext="true"/>
|
--------------------------------------------------------------------------------------
開始數據池配置
1.配置環境
將需要的jar包打入全局目錄,即%TOMCAT_HOME%\common\lib下,如SQLServer的數據驅動等。
2.配置TOMCAT(使用POOLMAN的數據池)
·服務器端:配置Server.xml文檔(%TOMCAT_HOME%\conf\Server.xml)
<Context path="/blog" docBase="blog" debug="0" reloadable="true">
<Resource name="jdbc/blog" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/blog">
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name> <value>jdbc:microsoft:sqlserver://localhost:1433;databaseName=blog</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>sa</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>20</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
</ResourceParams>
</Context>
·.客戶端:配置web.xml文檔(\webapps\banner\WEB-INF\web.xml)
<resource-ref>
<description>SqlServer Datasource example</description>
<res-ref-name>jdbc/blog</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
·測試:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en"
"http://www.w3.org/TR/REC-html40/strict.dtd">
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page session="false" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Test of MySQL connection pool</title>
</head>
<body>
<%
out.print("Start<br/>");
try{
Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env");
Object obj = (Object) ctx.lookup("jdbc/blog ");
javax.sql.DataSource ds = (javax.sql.DataSource)obj;
Connection conn = ds.getConnection();
out.print("connection pool runs perfectly!");
conn.close();
}
catch(Exception ex){
out.print(ex.getMessage());
ex.printStackTrace();
}
%>
</body>
</html>
-------------------------------------------------------------
5.0與5.5的區別
Tomcat5.5.X中,dbcp組件需要自己額外下載的,不像在Tomcat5.0.X中已經附帶了,配置格式不一樣,如下
<Resource name="jdbc/ExampleDB" auth="Container"
type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/quickoa" username="root"
password="" maxActive="100" maxIdle="30" maxWait="10000" />