JSPCN主页 | JSP空间 | 网站制作 | JSP下载 | JSP论坛 | JSP教程 | 关于JSPCN | 联系我们
JSP虚拟主机,jsp空间,java空间,java虚拟空间,详细请点击进入
做最专业的JSP中文网站 当前位置首页--开发工具--Tomcat  
文章搜索:
关键字 标题
  
JSP中文网内容管理系统(JCMS)
JSP虚拟主机
网络笔记本
网摘,图片,笔记收藏
虚拟服务器

JSPCN文章目录分类
JSP配置[219]JSP基础[136]
中文问题[69]上传问题[27]
JAVABEAN[46]数据库[212]
文件操作[126]图片声音[17]
JSP其他[57]时间相关[16]
JAVAMAIL[72]STRUTS[144]
开发工具[28]教程系列[157]
JSP实例[89]
JAVA基础[421]APPLET[78]
JAVA网络[179]Applica[115]
Servlet[98]XML[163]
J2ME[257]J2EE[374]
考试相关[63]JAVA线程[90]
EJB[261]Swing[26]
Java API[141]声音图片[28]
异常处理[33]JAVA实例[290]
JAVA类[139]SUN[89]
Hibernate[6]JMX[8]
Spring[34]
本版推荐文章 
本版热点文章 
相关文章链接 
 
tomcat4.1连接池说明
作者:未知     文章来源:www.jspcn.net
访问次数:1454次     加入时间:2005年01月19日
tomcat到了4.0后,终于引入了连结池技术,实际上好像只是别人的东西整合了进来。还有那个“超级”server.xml,几乎把所有的配置都丢在了里面,再加上它的help相比起来不是太理想。因此对于配置tomcat来说,的确是件很头疼的事。

不过tomcat中配置数据库连结池的具体操作,tomcat已经有了比较详细的文档

http://jakarta.apache.org/tomcat/tomcat-4.0-doc/jndi-resources-howto.html

这篇文档同样可以在tomcat4.0及更高版本安装后的目录里找到。以前一直认为这篇文档内容很模糊,而且例子太少。连结池配了很久都没有成功,配置成功后回头看它的内容还都是对的,只能认为是自己E文水平和理解力不行。

所以下面将自己对tomcat文档的一些理解和调试过程中的一些体会,通过中文表达出来,而不是完全的翻译。

按J2EE标准配置连结池,至少需要改动两个文件 $CATALINA_HOME/conf/server.xml 和 /WEB-INF/web.xml。而tomcat中,所用数据库的驱动可以用jar文件的形式(驱动为zip文件的,改后缀名为jar即可)放在$CATALINA_HOME/common/lib目录下(tomcat会自动加载该目录中jar文件),本例中就是把oracle的JDBC驱动classes12.zip更名为classes12.jar使用的。



首先,server.xml在tomcat的安装目录conf目录下,连结池数据源的驱动、URL、用户名、密码,以及此连结产生资源名的等参数都保存在这里。下面就是一个例子:



<Context ...>



...



<Resource name="jdbc/Test" auth="Container" type="javax.sql.DataSource"/>



<ResourceParams name="jdbc/Test">



<parameter>



<name>user</name>



<value></value>



</parameter>



<parameter>



<name>password</name>



<value></value>



</parameter>



<parameter>



<name>driverClassName</name>



<value>sun.jdbc.odbc.JdbcOdbcDriver</value>



</parameter>



<parameter>



<name>driverName</name>



<value>jdbc:odbc:test</value>



</parameter>



</ResourceParams>



...



</Context>



这里有一点大家尤其要注意的是Context中有path和docBase参数,server.xml中默认有一个

<Context path="/examples" docBase="examples" debug="0" reloadable="true">

如果把上面的代码放在这个<Context>之间,那它就是用来设置exmaple中的一个数据连结池资源,其他发布目录包括ROOT目录是无法调用到的。所以测试用的JSP页面也应该放到$CATALINA_HOME/webapps/examples目录下。如果你要在其他目录下发布的话,就应该建立一个相应的<Context>,并设置相应的连结资源。

言归正传,看了上面的代码,很容易理解,此数据库连结池的资源名为jdbc/Test。这个资源名在tomcat启动后根据server.xml中的参数立即生成,JSP和Servlet一般即直接调用了。不过按照J2EE的规范,应该在WEB-INF目录中的web.xml部署文件来实现此资源的调度(也可以将资源名重新映射成为你所需要的名字)。按照前面提到的,应该在examplesWEB-INF目录下的web.xml文件中加入如下代码:



<resource-ref>



<description>



Resource reference to a factory for java.sql.Connection



instances that may be used for talking to a particular



database that is configured in the server.xml file.



</description>



<res-ref-name>



jdbc/Test



</res-ref-name>



<res-type>



javax.sql.DataSource



</res-type>



<res-auth>



Container



</res-auth>



</resource-ref>



完毕后,就可以写测试用的JSP文件了(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/Test");

if(ds!=null)

out.println("Connection is OK!");

else

out.println("Fail!");

}catch(Exception ne){ out.println(ne);}

%>



把它放到examples目录下即可。然后启动tomcat,输入http://localhost:8080/examples/test.jsp。

如果不成功,请参阅tomcat关于JNDI的文档,再仔细分析一边。 
JSP虚拟主机 | JSP空间 | JSP主机 | JSP双线虚拟主机 | JAVA空间 | JAVA虚拟主机 | 虚拟服务器 | JSP 虚拟服务器 | VPS
Virtual Private Server | JAVA虚拟服务器 | VM服务器 | VHOST | 虚拟操作系统 | JSP论坛 | JAVA论坛 | JSP站点论坛
Copyright © 2002-2005 JSPCN.net. All rights reserved.
JSP中文网    备案序号:蜀ICP备05001583号
成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号