如何确保没有加载servlet?

时间:2011-12-14 21:52:41

标签: java servlets

我的web.xml中有servlet,但是我不希望我的应用程序加载它,人们会认为如果我们不想加载那个servlet然后将它放在那里的目的是什么,实际上我需要将它放在web.xml中,因为我正在部署两个应用程序实例,并且在一个实例上我需要拥有该servlet而在另一个实例上我不想拥有它并且我只使用一个web.xml,我不确定如何做到这一点。

这是我的web.xml

 <servlet>
      <servlet-name>StartServlet</servlet-name>
      <servlet-class>com.web.startServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>

我不能放-ve值,因为容器会随机调用这个servlet,请在这里纠正我并建议一个正确的方法来做到这一点。

3 个答案:

答案 0 :(得分:1)

<load-on-startup>允许您配置延迟加载。默认情况下,仅在访问servlet时(通过其url-pattern)加载servlet。您可以将其设置为在启动时加载。

答案 1 :(得分:1)

您可以通过在web.xml中使用enabled元素来禁用Servlet(这意味着无法通过定义的url-pattern映射访问它)。

Servlets 3.0 specification第8.2.3章中从web.xml组装描述符,web-fragment.xml和注释说:

  

(...)   3.如果使用web.xml中引入的enabled元素禁用servlet       然后servlet将不会在为servlet指定的url-pattern中可用。 (...)

enabled元素在XML Schema here中定义,可以作为<servlet>元素的子元素找到。

答案 2 :(得分:0)

  

<load-on-startup>允许您配置延迟加载。默认情况下,仅在访问servlet时(通过其url-pattern)加载servlet。您可以将其设置为在启动时加载。

也就是说,如果您设置的servlet不应该加载到仅按请求加载,然后使用负载均衡器来确保无论哪个URL都会命中该服务器而不是另一个,那么你就是&#39 ; d可能很好。

+1到Bozho。他的回答是一个很好的起点。