一尘不染

context.xml的说明

tomcat

使用Tomcat时,我一直都被web.xml视为一种.htaccesshttpd.conf同等的东西。很自然,可能必须有某种配置Web服务器的方法。

但是,我不太了解的目的context.xml。例如,当使用JDBC时,为什么必须添加resource-refin
web.xml以及Resource包含更多in的信息context.xml?我可以删除context.xml文件并以某种方式实例化DataSource代码吗?我问是因为这样的假设示例可以帮助我理解。

编辑:我试图了解在这样的配置中正在发生什么/META-INF/context.xml

<Context>
<Resource name="jdbc/postgres" auth="Container" type="javax.sql.DataSource"
    driverClassName="org.postgresql.Driver" url="jdbc:postgresql://127.0.0.1:5432"
    username="postgres" password="yes" maxActive="20" maxIdle="10"
    maxWait="-1" />
</Context>

并且,在WEB-INF/web.xml

<resource-ref>
    <description>postgreSQL Datasource example</description>
    <res-ref-name>jdbc/postgres</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

为什么必须将两者都放在其中才能使用JDBC?他们到底在做什么?除了Java代码,还有另一种方法可以做同样的事情吗?就像我说的,不是因为我想要,而是因为我想了解他们在做的更好。


阅读 416

收藏
2020-06-16

共1个答案

一尘不染

我不太明白 context.xml

context.xml``web.xml通过<context-param>标记调用。
当您在创建应用程序时首先加载web.xml时,它将为其中contexts配置的应用程序创建引用

我不太明白 context.xml

因此,目的context.xml是添加 代码分隔 。您可以出于不同目的使用不同的上下文。例如对于数据库连接,使用其他框架等。

我可以删除context.xml文件并以某种方式实例化DataSource代码吗?

是的,你可以通过配置做到这一点datasourceweb.xml本身。

希望这可以帮助 !!

2020-06-16