[英]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.