Tomcat8使用数据源的三种方式

Tomcat8使用数据源的方式一(Tomcat8端局部配置)


在Tomcat8的conf/Catalina/localhost目录中添加xml文件使用数据源

此种方式发布项目,是最佳选择。因为这样对tomcat8的入侵性最小,只需要新增一个xml配置文件,不需要修改Tomcat8

conf/server.xml、 conf/web.xml、conf/context.xml文件和项目的web.xml文件;即在以上文件中不需要包含有关数据源的任何信息。而且支持动态解析,修改完代码直接生效(修改配置除外)。

此种方式发布项目的步骤如下:

1.首先在eclipse中配置好tomcat的服务器。

2.如果采用Eclipse或MyEclipse开发,假设建立Dynamic Web Project项目的工程目录为 D:\javaProject\TestPro2

3.在tomcat8服务器的conf\Catalina\localhost目录下新建RenYi.xml文件(文件名可任意取),内容如下:

 <Context path="/RenYidocBase="D:\javaProject\TestPro2\WebContent" debug="0" privileged="true">

<Resource 

        name="jdbc/cgmDS" 

auth="Container"

        type="javax.sql.DataSource" 

        driverClassName="oracle.jdbc.driver.OracleDriver" 

        url="jdbc:oracle:thin:@localhost:1521:orcl"

        username="system" 

        password="linux" 

        maxIdle="2" 

       maxWait="5000" 

        maxActive="4"/>

 </Context>

 RenYi.xml文件中

path是指项目的发布路径,也就是访问路径,假如像上边那样填写,就要这样访问:          http://localhost:8080/RenYi/index.jsp

docBase是指工程项目的WebContent(Eclipse)WebRoot(MyEclipse)目录,这很好理解。你的项目最终发布,就是发布到这个目录。

上面的配置是将web应用放在tomcat服务器文件夹以外的任何位置,然后通过xml配置文件告诉tomcat如何部署这个web应用。

Tomcat8会首先到conf/Catalia/localhos目录中扫描所有的xml文件,在xml文件中通过docBase="D:\javaProject\TestPro2\WebContent"找到工程项目,并通过path="/RenYi"来指定发布(访问)路径

    注意:xml的文件名一定要和path=""中所指定的发布路径一致!在本例中xml文件名必须为:RenYi.xml

           而docBase所指向的目录名则不必和path所指向的目录名同名,docBase只要指向工程目录即可比如:

K:\testWeb\struts_hello\WebContent (针对Eclipse开发的struts_hello工程)

K:\testWeb\struts_hello\WebRoot (针对MyEclipse开发的struts_hello工程)

E:\myWebApps\TestCgm\WebContent (针对Eclipse开发的TestCgm工程)

E:\myWebApps\TestCgm\WebRoot  (针对MyEclipse开发的TestCgm工程)

    3.在eclipse中启动tomcat8,但不要在tomcat8服务器中部署(加载)该项目

这样的话,通过地址 http://localhost:8080/TestPro/index.jsp 就可访问到项目。 

  上边是比较常见的用法,但很多时候,我们希望把项目发布到tomcat根目录,这样就不用输入冗长的发布路径,直接输入域名http://localhost:8080就可以访问了。

  用这种方法把项目发布tomcat根目录,注意事项如下:

 

    1.为了保险起见,删掉tomcat服务器中的webapps目录下的ROOT文件夹。

    2.将xml文件名命名为ROOT(ROOT.xml)

    3.将xml中的path设成空(path="")。

  这样就可以将项目发布到tomcat根目录了,希望本文对大家有帮助。

Tomcat8使用数据源的方式二(工程项目端局部配置)

在WebRoot/META-INF目录中添加context.xml文件来使用数据源

此种方式在添加数据源时,步骤如下:

 1. 需要在工程项目WebRoot的META-INF目录中新建context.xml

context.xml的内容为:

<?xml version='1.0' encoding='utf-8'?> 

<Context> 

<Resource 

      name="jdbc/cgmDS2" 

      auth="Container"

      type="javax.sql.DataSource" 

      driverClassName="oracle.jdbc.driver.OracleDriver" 

      url="jdbc:oracle:thin:@localhost:1521:orcl"

      username="system" 

      password="linux" 

      maxIdle="2" 

      maxWait="5000" 

      maxActive="4"/> 

</Context>

WebRoot/META-INF/context.xml这个文件用来存放关于数据源的配置。在XML内容中,需要有Context标签,然后用Resource标签说明数据源的信息。Name属性指明数据源的JNDI名称是 java:comp/env/jdbc/cgmDS2 其中前缀 java:comp/env是Tomcat固定的,Tomcat提供的JNDI绑定都必须加该前缀。服务器会通过 java:comp/env/jdbc/cgmDS2来查找数据源。driverClassName指明所使用的数据库JDBC驱动。 Url指明Oracle服务器的url地址为 jdbc:oracle:thin:@localhost:1521:orcl其中orcl为Oracle数据库的SID

Tomcat8使用数据源的方式三(Tomcat端全局配置)

在Tomcat8的conf目录中配置context.xml文件使用数据源

在Tomcat8服务器的conf/context.xml文件的<Context>标签中添加<Resource>标签内容如下:

<Resource 

      name="jdbc/cgmDS3" 

      auth="Container"

      type="javax.sql.DataSource" 

      driverClassName="oracle.jdbc.driver.OracleDriver" 

      url="jdbc:oracle:thin:@localhost:1521:orcl"

      username="system" 

      password="linux" 

      maxIdle="2" 

      maxWait="5000" 

      maxActive="4"/> 

这种配置方法加入的数据源,在Tomcat8中所有的web应用中都可以使用。但这种方法如果使用不当会使所有的应用都受到影响,因此并不推荐这种方法

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tomcat8中,可以通过在context.xml文件中配置数据源来实现连接到数据库。以下是配置步骤: 1. 在Tomcat的conf目录下找到context.xml文件,该文件包含了全局的上下文配置信息。 2. 在context.xml文件中添加如下配置: ``` <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/javatest"/> ``` 其中,name属性用来指定数据源的名称,url属性用来指定数据库的连接地址,username和password属性用来指定访问数据库的用户名和密码,driverClassName属性用来指定JDBC驱动类名。 3. 将MySQL驱动包(mysql-connector-java.jar)放置在Tomcat的lib目录下。 4. 在web.xml文件中添加如下配置: ``` <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/TestDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> ``` 其中,res-ref-name属性的值必须与context.xml文件中配置的name属性的值相同。 5. 在Java代码中通过JNDI API获取数据源并获取数据库连接,代码示例如下: ``` Context initContext = new InitialContext(); Context envContext = (Context) initContext.lookup("java:/comp/env"); DataSource ds = (DataSource) envContext.lookup("jdbc/TestDB"); Connection conn = ds.getConnection(); ``` 其中,"java:/comp/env"是JNDI命名空间的固定前缀,可以直接使用,"jdbc/TestDB"是context.xml文件中配置数据源名称。 以上就是在Tomcat8配置数据源的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值