Jakarta ee <;启用>;假</启用>;对于web.xml中的servlet定义?

Jakarta ee <;启用>;假</启用>;对于web.xml中的servlet定义?,jakarta-ee,tomcat,servlets,websphere,weblogic,Jakarta Ee,Tomcat,Servlets,Websphere,Weblogic,似乎servlet的web.xml有一个名为 <enabled>false</enabled> false 这可以放在servelt定义中,如下所示 <servlet> <servlet-name>example</servlet-name> <servlet-class>com.example.TestServlet</servlet-class> <load-on-start

似乎servlet的web.xml有一个名为

<enabled>false</enabled>
false
这可以放在servelt定义中,如下所示

<servlet>
    <servlet-name>example</servlet-name>
    <servlet-class>com.example.TestServlet</servlet-class>
    <load-on-startup>100</load-on-startup>
    <enabled>false</enabled>
</servlet>

例子
com.example.TestServlet
100
假的
enabled是指servlet处理请求的能力吗?我注意到,即使将enabled设置为false,也会调用servelt的init方法。在servlet规范pdf中搜索并没有提供对的含义的解释,事实上,我甚至在servlet 3.0规范中找不到字符串。


这似乎是特定于服务器的条目,您使用的是哪种应用服务器?

除了XSD,我在任何地方都找不到它。如果它仍然处理请求(请检查),那么我猜它是添加到那里以供将来使用,或者让容器决定如何处理它。

来自Java Servlet 3.0规范,8.2.3第3节:

如果使用web.xml中引入的enabled元素禁用servlet 然后,servlet在为servlet指定的url模式下将不可用

编辑:这里是关于这个主题的另一篇帖子:

编辑2:(将下面评论的摘要放在这里)
在Tomcat 7中(从7.0.25开始),Servlet似乎将初始化,但对其url模式的请求将以状态代码503
SC\u SERVICE\u UNAVAILABLE
)响应。

我正在使用Tomcat 7.x,Servlet3.0规范在解释如何从多个片段组合成最终的战争时提到了enabled属性,XML的屏幕截图中有它,但没有对元素本身进行解释。此外,web.xml中的任何元素都适用于所有应用程序服务器,因此启用必须是一个通用设置。上述语句不明确是否意味着servelt未初始化,或者只是它未映射,因此不应发送任何请求?例如,我有一个load-on-startup元素,它告诉我在应用程序启动时应该启动servelt。在我的例子中,我想要一个在应用程序启动时启动的servlet,但没有任何url映射,因为我正在使用该servlet在应用程序上运行一些自检,以确保为应用程序正确配置了环境。从tomcat 7源代码中,如果以这种方式禁用,则对于
isUnavailable()
(搜索“启用”和“<代码> iSunaby > > >它可能被初始化,但对它的URL的任何请求都会返回错误。我可以确认它确实初始化它(再次在Tomcat 7中详细说明):注意<代码> IITServest >代码>标准包装器()不考虑<代码>启用状态。