是否有可能讓Web服務器中的所有Servlet都可以訪問Map?可從所有Servlet訪問的數據
我可以做一些簡單的事情,像從具有靜態Map的所有Servlet中擴展Servlet一樣簡單嗎?
我只想讓一個servlet做一個搜索,填充地圖結構,從這一點開始,所有的Servlets都可以讀取它。
是否有可能讓Web服務器中的所有Servlet都可以訪問Map?可從所有Servlet訪問的數據
我可以做一些簡單的事情,像從具有靜態Map的所有Servlet中擴展Servlet一樣簡單嗎?
我只想讓一個servlet做一個搜索,填充地圖結構,從這一點開始,所有的Servlets都可以讀取它。
你的意思是像Session Variables?
Servlet本質上是線程安全的,所以要小心使用靜態變量。如果你永遠不會改變這些變量,即如果它們是常量,那麼使用靜態變量就沒有問題。
考慮使用上面建議的會話變量,但這取決於您的所有servlet是否在同一會話中調用。
您也可以創建應用程序緩存並使用它的數據。
如果我使用會話變量,是否會出現類似競爭條件的多重訪問問題? – 2012-02-28 13:21:53
@doubter只有爲同一會話(即用戶)創建多個線程時纔有可能 - 而且不太可能。 – Marcelo 2012-02-28 14:44:45
可能比有權訪問它的所有servlet實例更好......謝謝 – 2012-02-28 12:39:17