2012-02-28 61 views
0

是否有可能讓Web服務器中的所有Servlet都可以訪問Map?可從所有Servlet訪問的數據

我可以做一些簡單的事情,像從具有靜態Map的所有Servlet中擴展Servlet一樣簡單嗎?

我只想讓一個servlet做一個搜索,填充地圖結構,從這一點開始,所有的Servlets都可以讀取它。

回答

1

你的意思是像Session Variables

+0

可能比有權訪問它的所有servlet實例更好......謝謝 – 2012-02-28 12:39:17

0

Servlet本質上是線程安全的,所以要小心使用靜態變量。如果你永遠不會改變這些變量,即如果它們是常量,那麼使用靜態變量就沒有問題。

考慮使用上面建議的會話變量,但這取決於您的所有servlet是否在同一會話中調用。

您也可以創建應用程序緩存並使用它的數據。

+0

如果我使用會話變量,是否會出現類似競爭條件的多重訪問問題? – 2012-02-28 13:21:53

+0

@doubter只有爲同一會話(即用戶)創建多個線程時纔有可能 - 而且不太可能。 – Marcelo 2012-02-28 14:44:45