【发布时间】:2014-06-02 14:12:51
【问题描述】:
在使用 Tomcat 时,我一直将 web.xml 视为一种 .htaccess 或 httpd.conf 等价物。可能需要某种方式来配置 Web 服务器,这似乎很自然。
但是,我不太明白context.xml 的用途。例如,在使用 JDBC 时,为什么我必须在 web.xml 中添加一个 resource-ref 以及在 context.xml 中添加更多信息的 Resource?我可以消除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 代码中,还有其他方法可以做同样的事情吗?就像我说的,不是因为我想这样做,而是因为我想了解他们在哪些方面做得更好。
【问题讨论】: