簡體   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