对于web.xml中的servlet定义,<enabled> false </enabled>的含义是什么?

时间:2012-02-10 21:24:16

标签: java-ee tomcat servlets websphere weblogic

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

的元素
<enabled>false</enabled>

可以放在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>

启用是否指的是servlet处理请求的能力?我注意到即使我将enabled设置为false,也会调用servelt的init方法。通过servlet spec pdf搜索没有提供&lt; enabled&gt;的含义的解释。实际上我甚至找不到字符串&lt; enabled&gt;在servlet 3.0规范中。

3 个答案:

答案 0 :(得分:4)

从Java Servlet 3.0规范,8.2.3第3节(see the pdf)

  

如果使用web.xml中引入的 enabled element 禁用了servlet   那么servlet将不会在为servlet指定的url-pattern中可用。

修改:这是关于这个话题的另一篇文章:How to make sure that servlet is not loaded?

编辑2:(将评论摘要放在此处) 在Tomcat 7(从7.0.25开始),似乎Servlet 初始化,但对其url-pattern的请求将以状态代码503 ({{1} })

答案 1 :(得分:2)

除了XSD之外,我确实无法在任何地方找到它。如果它仍然处理请求(检查),那么我想它会被添加到那里供将来使用,或者让容器决定如何处理它。

答案 2 :(得分:1)

Look at Oracle web.xml deployment descriptor

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