java - 使用 [context].xml 和 web.xml 来配置网络应用程序

标签 java web-applications jakarta-ee tomcat configuration

我刚刚了解到我可以从“ServletContext”中检索参数和其他内容(即通过覆盖 contextInitialized)。

阅读 tomcats context doc显示我可以通过 web.xml 设置参数(用作默认值),然后用 [context].xml 文件覆盖它们。

第一个问题:这是设置默认属性并让服务器管理员覆盖它们的好方法吗?

首先是一个概述,它显示了在 tomcats 上下文 xml 中使用的标签可用的各种属性/参数,在 web xml 中使用的标签,如何从 java 中检索它以及一个用例/示例应该使用什么样的参数?

通过玩弄它,我面临以下问题:如果我通过 tomcats Web 界面部署 Web 应用程序,[context].xml 将被完全忽略(控制台状态它已部署但 2nd 为空)

长话短说:如何正确使用 web.xml 和 [context].xml - 下面的链接帮助不大。

最佳答案

首先,通过 web.xml 声明(servlet/应用程序)上下文属性更好,因为这是官方 Java EE 支持的方式,因此如果您这样声明它们,当您在其他应用程序中部署您的应用程序时它们将起作用Tomcat 以外的服务器。

其次,我相信 Tomcat 覆盖参数值的规则是:

如果你有一个 $CATALINA_BASE/conf/context.xml 并且你在其中和 web.xml 中声明了相同的属性,则 web.xml 中的属性将优先

如果您的应用程序中(在 META-INF 目录中)有一个 $CATALINA_BASE/conf/context.xml 和一个 context.xml 文件,它们都具有相同的参数,即 META-INF/context 中的参数。 xml 将具有优先权。

最后,如果所有三个文件都 decal 了相同的参数,则 web.xml 中的文件将具有优先权。

关于java - 使用 [context].xml 和 web.xml 来配置网络应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8910280/

相关文章:

java - 拷贝构造函数创建依赖拷贝

web-applications - 什么是可用于 Web 应用程序的跨浏览器和跨操作系统安全键盘快捷键?

apache - 使用 mod_jk 让 apache 默认为特定 JKMount 时出现问题

jakarta-ee - Wildfly - 不同节点上的 2 个 Websocket 之间的通信?

java - 尝试将 JSON 数据发布到 Spring Controller ..根本不起作用

java - AADSTS500112 : The reply address 'http://testurl' does not match the reply address 'https://testurl' when requesting Authorization code

java - 刷新 ServletOutputStream 时出现空指针异常

java - 剩余图像字节数

java - 在 Eclipse Subversive 中更改项目 SVN 地址

java - Web 应用程序中的 Jboss 共享库