﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-thisliy-随笔分类-tomcat</title><link>http://www.blogjava.net/thisliy/category/39342.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 15 Oct 2009 13:53:57 GMT</lastBuildDate><pubDate>Thu, 15 Oct 2009 13:53:57 GMT</pubDate><ttl>60</ttl><item><title>tomcat数据源配置（工程独立）</title><link>http://www.blogjava.net/thisliy/archive/2009/10/12/297917.html</link><dc:creator>liyang</dc:creator><author>liyang</author><pubDate>Mon, 12 Oct 2009 08:54:00 GMT</pubDate><guid>http://www.blogjava.net/thisliy/archive/2009/10/12/297917.html</guid><description><![CDATA[<span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">有关tomcat数据源配置的文章已经不少，但是一般都是把数据源直接配置到server.xml文件中，这样在移植应用程序时带来了一些不必要的麻烦，其实tomcat数据源的配置还有一种方法如下：<br />
1.假如有工程test，其需要用到的数据源为test/jdbc/Data，则在目录TOMCAT_HOME/conf\Catalina\localhost<br />
下面建立文件test.xml,内容为：</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&lt;?xml version='1.0' encoding='utf-8'?&gt;<br />
&lt;Context crossContext="true" displayName="Test" docBase="Test" path="/Test" workDir="work\Catalina\localhost\Test"&gt;<br />
&nbsp; &lt;Resource auth="Container" name="test/jdbc/Data" type="javax.sql.DataSource"/&gt;<br />
&nbsp; &lt;ResourceParams name="test/jdbc/Data"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;parameter&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;name&gt;factory&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;org.apache.commons.dbcp.BasicDataSourceFactory&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/parameter&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;parameter&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;name&gt;url&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;jdbc:jtds:sqlserver://127.0.0.1:1433/test;tds=8.0;lastupdatecount=true;&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/parameter&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;parameter&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;name&gt;password&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;11111111&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/parameter&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;parameter&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;name&gt;maxWait&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;10000&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/parameter&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;parameter&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;name&gt;maxActive&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;100&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/parameter&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;parameter&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;name&gt;driverClassName&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;net.sourceforge.jtds.jdbc.Driver&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/parameter&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;parameter&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;name&gt;username&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;sa&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/parameter&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;parameter&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;name&gt;maxIdle&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;30&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/parameter&gt;<br />
&nbsp; &lt;/ResourceParams&gt;<br />
&lt;/Context&gt;</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">2.其他配置<br />
&nbsp; （1）web.xml文件<br />
&nbsp;&nbsp;&nbsp; &nbsp;在工程当中的web.xml文件中添加<br />
&nbsp; &nbsp;&nbsp;&lt;resource-ref&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;res-ref-name&gt;test/jdbc/Data&lt;/res-ref-name&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;res-auth&gt;Container&lt;/res-auth&gt;<br />
&nbsp; &nbsp;&nbsp;&lt;/resource-ref&gt;<br />
&nbsp;（2）工程中调用代码<br />
&nbsp;&nbsp;&nbsp; Context initContext = new InitialContext();<br />
&nbsp; &nbsp;&nbsp;&nbsp; Context envContext&nbsp; = (Context)initContext.lookup("java:/comp/env");&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp; &nbsp;&nbsp;&nbsp; DataSource ds = (DataSource)envContext.lookup("test/jdbc/Data");&nbsp;<br />
&nbsp;// test/jdbc/Data是数据源的名字&nbsp;&nbsp;<br />
&nbsp; &nbsp; &nbsp; Connection conn = ds.getConnection();&nbsp;<br />
&nbsp;Statement stmt = conn.createStatement();</p>
</span>
<img src ="http://www.blogjava.net/thisliy/aggbug/297917.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/thisliy/" target="_blank">liyang</a> 2009-10-12 16:54 <a href="http://www.blogjava.net/thisliy/archive/2009/10/12/297917.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tomcat数据源的配置和使用</title><link>http://www.blogjava.net/thisliy/archive/2009/10/12/297915.html</link><dc:creator>liyang</dc:creator><author>liyang</author><pubDate>Mon, 12 Oct 2009 08:53:00 GMT</pubDate><guid>http://www.blogjava.net/thisliy/archive/2009/10/12/297915.html</guid><description><![CDATA[<span  style="font-family: verdana, sans-serif; font-size: 14px; line-height: 21px; ">
<h1 class="title_txt" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0.5em; padding-left: 1.5em; font-size: 15px; font-family: 'Microsoft yahei', verdana, sans-serif; border-bottom-width: 2px; border-bottom-style: dotted; border-bottom-color: #dcdcdc; "><img src="http://hi.images.csdn.net/images/blog/authorship.gif" border="0" width="15" height="16" alt="原创" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 5px; margin-bottom: 0px; margin-left: -20px; " />&nbsp; tomcat数据源的配置和使用&nbsp;<cite class="fav_csdnstylebykimi" style="font-style: normal; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 5px; display: inline; text-decoration: none; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><a href="javascript:d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(saveit=window.open('http://wz.csdn.net/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'saveit','scrollbars=no,width=590,height=300,left=75,top=20,status=no,resizable=yes'));saveit.focus();" class="fav_csdnstylebykimi" title="收藏到我的网摘中，并分享给我的朋友" style="text-decoration: none; color: #34579c; font: normal normal normal 12px/normal Tahoma, sans-serif; padding-top: 1px; padding-right: 25px; padding-bottom: 1px; padding-left: 10px; background-image: url(http://hi.images.csdn.net/images/share-add.gif); background-repeat: no-repeat; background-attachment: initial; background-color: initial; background-position: 0px 0px; ">收藏</a></cite></h1>
<div class="blogstory" style="float: left; width: 931px; font-size: 14px; line-height: 21px; ">一、数据源简介：<br />
************************************************************************************<br />
在Java语言中，DataSource对象就是一个代表数据源实体的对象。一个数据源就是一个用来存储数据的工具，它可以是复杂的大型企业级数据库，也可以是简单得只有行和列的文件。数据源可以位于在服务器端，也可以位于客服端。<br />
<br />
应用程序通过一个连接来访问数据源，那么一个DataSource对象就是用于提供连接数据源的工具。DataSource接口提供了两个方法用于建立和数据源的连接<br />
使用DataSource对象建立和数据库的连接比起使用DriverManager接口更加高效，虽然两者的使用范围都很相似，并且都提供了方法用于建立和数据库的连接，设置连接的最大超时时间，获取流、登录。<br />
&nbsp;&nbsp;&nbsp;<br />
但两者之间的区别更加明显。和DriverManager不同，一个DataSource对象能够识别和描述它所代表的数据源的属性，而且DataSource对象的工作和JNDI(Javatm&nbsp;Naming&nbsp;and&nbsp;Directory&nbsp;Interfaceti)具有密切的关系，DataSource的建立、发布、独立于应用程序的管理都依靠JNDI技术。<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
在JDBC2.0或JDBC3.0中，所有的数据库驱动程序提供商必须提供一个实现了DataSource接口的类，要使用数据源必须首先在JNDI中注册该数据源对象。<br />
如果在JNDI中注册了数据源对象，将会比起使用DriverManager来具有两个方面的优势：<br />
首先程序不需要像使用DriverManager一样对加载的数据库驱动程序信息进行硬编码，程序员可以选择先在JNDI中注册这个数据源对象，然后在程序中使用一个逻辑名称来引用它，JNDI会自动根据你给出的名称找到与这个名称绑定的DataSource对象。然后就可以使用这个DataSource对象来建立和具体数据库的连接了。<br />
<br />
其次，使用实现了DataSource接口的类所具有的第二个优势体现在连接池和分布式事务上。连接池通过对连接的复用而不是新建一个物理连接来显著地提高程序的效率。从而适用于任务繁忙、负担繁重的企业级分布式事务。<br />
*************************************************************************************<br />
<br />
二、JNDI简介：<br />
*************************************************************************************<br />
JNDI是用于向Java程序提供目录和命名功能的API。它被设计成独立于特定的目录服务，所以各种各样的目录都可以通过相同的方式进行访问。<br />
<br />
可以简单地把JNDI理解为一种将对象和名字绑定的技术，对象工厂负责生产出对象，这些对象都和惟一的名字绑定。外部程序可以通过名字来获取对某个对象的引用。<br />
<br />
在Intranets(企业内部网)和Internates（互联网）中目录服务(Directory&nbsp;service)扮演了一个非常重要的角色，它能够在众多的用户、机器、网络、服务、应用程序中访问各种各样的信息。目录服务提供了一系列的命名措施，用人类可以理解的命名方式来刻画各种各样的实体之间的关系<br />
<br />
一个企业式计算环境(computing&nbsp;environment)通常是由若干代表不同部分的命名复合而成。比如在一个企业级环境中DNS(Domain&nbsp;Name&nbsp;System)通常被当成顶层的命名方案(top-level&nbsp;namein&nbsp;facility)区分不同的部门或组织。而这些部门或组织自己又可以使用诸如LADP或NDS的目录服务<br />
<br />
从用户的角度来看，这些都是由不同的命名方案构成的复合名称。URL就是一个很典型的例子，它由多个命名方案构成。使用目录服务的应用程序必须支持这种复合构成方式<br />
<br />
使用目录服务API的Java开发人员获得的好处不仅在于API独立于特定的目录或命名服务，而且可以通过多层的命名方案无缝访问(seamless&nbsp;acess)目录对象。实际上，任何的应用程序都可以将自身的对象和特定的命名绑定起来，这种功能可以使到任何的Java程序查找和获取任何类型的对象<br />
<br />
终端用户可以方便地使用逻辑名称从而轻易地在网络上查找和识别各种不同的对象，目录服务的开发人员可以使用API方便地在不同的客服端之间切换而不需要作任何更改<br />
*************************************************************************************<br />
<br />
<br />
三、数据源和连接池的关系：<br />
*************************************************************************************<br />
JDBC2.0提供了javax.sql.DataSource接口，它负责建立与数据库的连接，在应用程序访问数据库时不需要编写连接数据库的代码，可以直接从数据源获得数据库连接。<br />
<br />
在DataSource中事先建立了多个数据库连接，这些数据库连接保存在连接池(Connect&nbsp;Pool)中。Java程序访问数据库时，只需要从连接池中取出空闲状态的数据库连接；当程序访问数据库结束，再将数据库连接放回连接池。<br />
*************************************************************************************<br />
<br />
<br />
四、数据源和JNDI的关系：<br />
*************************************************************************************<br />
DataSource对象是由Tomcat提供的，因此不能在程序中采用创建一个实例的方式来生产DataSource对象，而需要采用Java的另一个技术JNDI，来获得DataSource对象的引用。<br />
<br />
Tomcat把DataSource作为一种可以配置的JNDI资源来处理。生成DataSource对象的工厂为org.apache.commons.dbcp.BasicDataSourceFactory。<br />
<br />
在javax.naming包中提供了Context接口，该接口提供了将对象和名字绑定，以及通过名字检索对象的方法。Context中的主要方法有：<br />
bind(String&nbsp;name,Object&nbsp;object)：将对象与一个名字绑定<br />
lookup(String&nbsp;name)：返回与指定的名字绑定的对象<br />
*************************************************************************************<br />
<br />
<br />
五、Tomcat中数据源的配置：<br />
*************************************************************************************<br />
数据源的配置涉及修改server.xml和web.xml，在server.xml中加入定义数据源的元素&lt;Resource&gt;，在web.xml加入&lt;resource-ref&gt;元素，声明该Web应用所引用的数据<br />
<br />
<br />
A．在server.xml中加入&lt;Resource&gt;元素：&lt;Resource&gt;元素用来定义JNDI&nbsp;Resource。<br />
<br />
属性&nbsp;&nbsp;&nbsp;&nbsp;描述<br />
name&nbsp;&nbsp;&nbsp;&nbsp;指定Resource的JNDI名字<br />
auth&nbsp;&nbsp;&nbsp;&nbsp;指定管理Resource的Manager，它有两个可选值：Container、Application<br />
type&nbsp;&nbsp;&nbsp;&nbsp;指定Resource所属的Java类名<br />
<br />
&lt;Resource&nbsp;name&nbsp;=&nbsp;"jdbc/BookDb"　<br />
auth&nbsp;=&nbsp;"Container"　<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;　　　type&nbsp;=&nbsp;"javax.sql.DataSource"&nbsp;/&gt;<br />
<br />
B．在&lt;Resource&gt;元素中加入&lt;ResourceParams&gt;元素：&lt;ResourceParams&gt;元素用来指定各种参数值<br />
<br />
属性&nbsp;&nbsp;&nbsp;&nbsp;描述<br />
factory&nbsp;&nbsp;&nbsp;&nbsp;指定生成的DataResource的factory类名<br />
maxActive&nbsp;&nbsp;&nbsp;&nbsp;指定数据库连接池中处于活动状态的最大连接数目，0表示不受限制<br />
maxIdle&nbsp;&nbsp;&nbsp;&nbsp;指定数据库连接池中处于空闲状态的最大连接数目，0表示不受限制<br />
maxWait&nbsp;&nbsp;&nbsp;&nbsp;指定连接池中连接处于空闲状态的最长时间,超过会抛出异常，-1表示无限<br />
username&nbsp;&nbsp;&nbsp;&nbsp;指定连接数据库的用户名<br />
password&nbsp;&nbsp;&nbsp;&nbsp;指定连接数据库的口令<br />
driverClassName&nbsp;&nbsp;&nbsp;&nbsp;指定连接数据库的JDBC驱动程序<br />
url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指定连接数据库的URL<br />
<br />
&nbsp;&nbsp;&nbsp;&lt;ResourceParams&nbsp;name&nbsp;=&nbsp;"jdbc/BookDb"&gt;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;parameter&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;factory&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;org.apache.commons.dbcp.BasicDataSourceFactory&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/parameter&gt;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;parameter&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;maxActive&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;100&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/parameter&gt;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;parameter&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;maxIdle&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;30&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/parameter&gt;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;parameter&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;maxWait&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;10000&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/parameter&gt;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;parameter&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;username&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;user&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/parameter&gt;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;parameter&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;password&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;1234&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/parameter&gt;&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;parameter&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;driverClassName&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;com.mysql.jdbc.Driver&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/parameter&gt;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;parameter&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;url&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;jdbc:mysql//localhost:3306/BookDb?autoReconnect=true&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/parameter&gt;&nbsp;&nbsp;<br />
<br />
&lt;/ResourceParams&gt;<br />
<br />
C．在web.xml中加入&lt;resource-ref&gt;元素：&lt;resource-ref&gt;元素表示在Web应用中引用JNDI资源<br />
<br />
属性&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;描述<br />
description&nbsp;&nbsp;&nbsp;&nbsp;对所引用的资源的说明<br />
res-ref-name&nbsp;&nbsp;&nbsp;&nbsp;指定所引用资源的JNDI名字，与&lt;Resource&gt;元素中的name属性对应<br />
res-type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指定所引用资源的类名字，与&lt;Resource&gt;元素中的type属性对应<br />
res-auth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指定所引用资源的Manager，与&lt;Resource&gt;元素中的auth属性对应<br />
<br />
*************************************************************************************<br />
<br />
<br />
六、在Web应用中使用数据源：<br />
*************************************************************************************<br />
javax.naming.Context提供了查找JNDI&nbsp;Resource的接口，可以通过三个步骤来使用数据源对象：<br />
<br />
A．获得对数据源的引用：<br />
Context&nbsp;ctx&nbsp;=&nbsp;new&nbsp;InitalContext();<br />
DataSource&nbsp;ds&nbsp;=&nbsp;(DataSource)ctx.lookup("java:comp/env/jdbc/BookDb");<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;B．获得数据库连接对象：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;con&nbsp;=&nbsp;ds.getConnection();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;C．返回数据库连接到连接池：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;con.close();<br />
<br />
<br />
<br />
在连接池中使用close()方法和在非连接池中使用close()方法的区别是：前者仅仅是把数据库连接对象返回到数据库连接池中，是连接对象又恢复到空闲状态，而非关闭数据库连接，而后者将直接关闭和数据库的连接<br />
*************************************************************************************<br />
<br />
<br />
七、发布使用数据源的Web应用：<br />
*************************************************************************************<br />
如果直接同JDBC访问数据库，可以把JDBC驱动程序拷贝到Web应用的WEB-INF/lib目录或者Tomcat安装目录下的common/lib目录下。<br />
<br />
如果通过数据源访问数据库，由于数据源由Servlet容器创建并维护，所以必须把JDBC驱动程序拷贝到Tomcat安装目录下的common/lib目录下，确保Servlet容器能够访问驱动程序。<br />
*************************************************************************************</div>
</span>
<img src ="http://www.blogjava.net/thisliy/aggbug/297915.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/thisliy/" target="_blank">liyang</a> 2009-10-12 16:53 <a href="http://www.blogjava.net/thisliy/archive/2009/10/12/297915.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tomcat修改主页</title><link>http://www.blogjava.net/thisliy/archive/2009/07/10/286212.html</link><dc:creator>liyang</dc:creator><author>liyang</author><pubDate>Fri, 10 Jul 2009 03:41:00 GMT</pubDate><guid>http://www.blogjava.net/thisliy/archive/2009/07/10/286212.html</guid><description><![CDATA[<span style="font-size: 12pt;"><span style="font-size: 12pt;"><strong>方法1：<br />
我在我机子上按照下面的方法已经成功更改tomcat的默认目录</strong><br />
<p><strong>目标：</strong></p>
<p>我在$tomcat/webapps/下建了个myjsp目录作为我网站的默认目录，在myjsp中有一个login.jsp文件，该文件要作为我网站的默认主页。</p>
<p><strong>修改配置文件：</strong></p>
<p>首先，修改$tomcat/conf/server.xml文件。<br />
在server.xml文件中，有一段如下：<br />
&#8230;&#8230;<br />
&lt;engine&nbsp;name="Catalina"&nbsp;defaultHost="localhost"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;host&nbsp;name="localhost"&nbsp;appBase="webapps"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unpackWARs="true"&nbsp;autoDeploy="true"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlValidation="false"&nbsp;xmlNamespaceAware="false"&gt;<br />
&nbsp;&nbsp;&nbsp;&#8230;&#8230;<br />
&nbsp;&nbsp;&nbsp;&lt;host&gt;<br />
&lt;/engine&gt;<br />
&#8230;&#8230;<br />
在&lt;host&gt;&lt;/host&gt;标签之间添加上：</p>
<p>
<strong>&lt;Context&nbsp;path=""&nbsp;docBase="myjsp"&nbsp;debug="0"&nbsp;reloadable="true"&nbsp;/&gt;</strong></p>
<p>
<span style="background-color: yellow; "><span style="color: red; ">path是说明虚拟目录的名字，如果你要只输入ip地址就显示主页，则该键值留为空；</span></span></p>
<p>
docBase是虚拟目录的路径，它默认的是$tomcat/webapps/ROOT目录，现在我在webapps目录下建了一个myjsp目录，让该目录作为我的默认目录。</p>
<p>debug和reloadable一般都分别设置成0和true。</p>
<p>然后，修改$tomcat/conf/web.xml文件。<br />
在web.xml文件中，有一段如下：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;welcome-file-list&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;welcome-file&gt;index.html&lt;/welcome-file&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;welcome-file&gt;index.htm&lt;/welcome-file&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/welcome-file-list&gt;<br />
在&lt;welcome-file-list&gt;与&lt;/welcome-file&gt;index.html&lt;/welcome-file&gt;之间添加上：</p>
<p><strong>&lt;welcome-file&gt;login.jsp&lt;/welcome-file&gt;</strong></p>
保存上述两个文件后重启tomcat，在浏览器地址栏内输入"<a href="http://localhost:8080/" target="_blank">http://localhost:8080/"</a>，显示login.jsp页面的内容。<br />
<br />
方法2：<br />
<br />
<div>1.不要碰conf目录下的那个web.xml文件，让它老死在那里吧。</div>
<div>&nbsp;</div>
<div>2.把原来的ROOT目录清空，里面什么都不要留。删掉或者改名随便你怎么弄都成。只要清空就好。</div>
<div>&nbsp;</div>
<div>3.发布你自己的项目到ROOT目录下，用war包发布或者用直接拷贝的都一个效果。保证index.html/index.htm/index.jsp其中一个存在于ROOT目录下。</div>
<div>&nbsp;</div>
<div>4.删除%CATALINA%/work目录下的一切。我就是没有清理这个目录，导致<a href="http://localhost:8080/">http://localhost:8080</a>永远都是那只猫~~~~郁闷</div>
<div>&nbsp;</div>
<div>5.重起tomcat。一切搞定。</div>
</span></span>
<img src ="http://www.blogjava.net/thisliy/aggbug/286212.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/thisliy/" target="_blank">liyang</a> 2009-07-10 11:41 <a href="http://www.blogjava.net/thisliy/archive/2009/07/10/286212.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>