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" />