2014-03-27 196 views
0

我在tomcat 5.5服務器上部署了一個Web應用程序。我有一個Singleton類。我希望單例類的對象在應用程序中的任何地方都可用。我在init方法中初始化這個單例對象和其他使用servlet的進程,並配置web.xml設置load-on-startup。在init方法中,我創建了一個單例類的新對象,我希望此對象在應用程序的任何地方都可用。怎麼做 ?Java Web應用程序:全局應用程序範圍對象

+0

你怎麼做什麼? – Leo

回答

0

獲取ServletContext並使用setAttribute()保存您的單身人士。然後,您可以在任何地方使用getAttribute()來獲取它,因爲每個Web應用程序只會有一個Servlet上下文。

您可以通過HttpServletRequest - >getSession() - >getServletContext()在大多數地方獲得上下文。

+0

我希望沒有人能操縱這個對象,即只讀 – user123

+0

啊。那麼不要使用Java。沒有辦法阻止一個有決心的人來操縱這個對象(是的,有辦法改變'final'字段......) –

+0

我知道這是一個愚蠢的問題,但這是要求。我正在研究一個共同的項目。我不希望其他開發人員操縱普通對象 – user123

-1

將所需值存儲在static字段中,然後創建static訪問數據的方法。

+0

-1 20年前全球變量不好,他們仍然不好:-) –

+0

@AaronDigulla你能提出比這更好的方法嗎?問題陳述是。我想初始化一個單例對象並在我的應用程序的任何地方訪問那個單獨的對象 – user123

+0

@ user3172529:你看到我的答案了嗎? –