如何在init()方法中卸载servlet?我可以在servlet构造函数中卸载它吗?

时间:2011-06-09 19:04:26

标签: servlets

如何使用servlet的构造函数或init()方法从其容器中卸载servlet?

如果我使用servlet构造函数卸载它,是否仍会调用init()方法?
我应该抛出异常吗?如果是,检查或运行时?

2 个答案:

答案 0 :(得分:1)

只是在servlet的构造函数或init()方法中抛出一个异常将阻止它被带入servletcontainer的servlet映射中。

如果已经构建并成功初始化,则无法在以后卸载它。最好的办法是根据某些条件在任何HTTP方法中抛出异常。

然而,正确的方法取决于唯一的功能要求。很可能你根本不需要servlet。仅仅因为手动卸载它的愿望使得设计在技术上没有任何意义。

答案 1 :(得分:0)

如果我们在servlet上调用destroy()那么它并不意味着我们的servlet将被卸载/销毁。它只是调用destroy而不会破坏servlet,对servlet实例没有任何伤害。它仍然存在,因为你调用了destroy方法。它不是调用destroy方法的容器机制。

当容器决定从内存中销毁/卸载servlet实例时,容器运行销毁机制,而destroy方法是销毁机制的一个步骤(以及几个步骤)。销毁机制为用户/开发人员提供了清理在构造/初始化实例期间初始化的资源的机会。