似乎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规范中。
答案 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
似乎这是服务器特定的条目,您使用的是哪种应用程序服务器?