2014-03-27 155 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:你看到我的答案了吗? –