如何确保未加载 servlet



我的网络中有servlet.xml但我不希望我的应用程序加载它,有人会认为如果我们不希望加载该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,请在此处纠正我并建议正确的方法。

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

第 8.2.3 章中的 Servlet 3.0 规范 从 web.xml、web-fragment 和注释组装描述符.xml说:

(... 3. 如果使用 Web 中引入的启用元素禁用了 servlet.xml 则 servlet 在为 servlet 指定的 url-pattern 中将不可用。(...)

enabled元素在此处的 XML 架构中定义,可以作为<servlet>元素的子元素找到。

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

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

也就是说,如果您将不应该加载的 servlet 设置为仅在请求时加载,然后使用负载均衡器来确保任何 URL 会命中该服务器,而不是命中另一个,那么您可能很高兴。

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

最新更新