繁体   English   中英

使用service方法调用servlet的init和destroy方法

[英]Calling servlet's init and destroy method withing service method

我正在阅读有关Servlet生命周期的信息,并对此产生了疑问。 我们可以像重写任何其他Java方法一样在重写的servlet的服务方法中调用servlet的init和destroy方法吗? 这会影响集装箱的实际流量吗?

您当然可以调用init并从service方法中destroy 根据这些方法的作用,即如果它们实际上破坏了Servlet,这可能是不明智的。

举例来说,我收到一个请求,遇到了问题。 我认为解决此问题的最简单方法是调用destroy ,然后通过init来“重新启动”该servlet。

我的重启花费了非零的时间,在此期间另一个请求进入。 该请求遇到问题。 它还决定重新启动Servlet。

你看这是怎么回事...

我建议不要摆弄servlet生命周期方法,并将其留给容器。 如果必须调用这些方法,请非常警惕线程同步。

就影响“容器的实际流量”而言,容器无法得知您调用了该方法,这就是为什么请求不断泛滥的原因。容器将使您不愿调用这些方法。

是的,您可以给他们打电话,但是没有必要这样做。 Servlet容器使用此方法。

如果您需要例如初始化内部状态,则应使用此方法。

方法init()destroy() defaulty为空,您应该重写它们以获取/释放资源(例如)。

您可以调用它们,并且不会影响servlet的生命周期。

您可以将这些方法称为没有问题,但是它们是生命周期方法。无论是Servlet类实例化还是销毁,由容器执行的操作在那时都不会发生。

每当容器调用该容器时,只会发生这些操作(对象实例化和销毁)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM