Servlet中的单例

Lin*_*nus 4 java singleton servlets

我可以在servlet中使用单例在不同会话之间共享信息.

我知道任何时候只有一个实例Servlet在运行.为每个传入请求调用服务方法.但是如何创建另一个Singleton类(例如:ShareSingleton),它在servlet的Init()方法中调用它的getInstance().此ShareSingleton可以携带需要在会话/请求之间共享的数据.

在servlet中使用这种方法有风险吗?

Sli*_*ihp 9

首先......看看这个单身人士的最佳方法:http://javarevisited.blogspot.com/2012/07/why-enum-singleton-are-better-in-java.html

第二:记住单身人士只是JVM的单身人士.所以..如果你有多个JVM运行,不要指望每个单例都具有相同的状态.

第三:为了安全起见,我将从servlet上下文的监听器中实例化单例.

请参阅http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContextListener.html

在web.xml中定义一个类并在那里实例化它.您的单例将在您的webapp启动时创建,而不是当n人立刻点击您的servlet的服务方法时.