我的用例是:
所以我想在第二个get请求中访问第一个get请求中创建的对象,即我想让对象在应用程序范围内可用。
在Java SE中,我将在main方法中创建一个对象列表,并将其作为参数传递给创建新对象的方法。它将在给定列表中添加新创建的对象。另一种方法,必须杀死这个过程,将从这个列表中选择对象。但在EE中我没有主方法,所以在哪里存储应用程序范围内可用的对象。
答案 0 :(得分:2)
如果您完全确定使用全局范围(解决了例如同步问题),那么您可以:
在网络应用程序上下文中,使用ServletContext
(Javadocs):
application
隐式变量从JSP开始。getServletConfig().getServletContext()
ServletContext
的行为类似于您需要的地图,方法为setAttribute(String, Object)
,getAttribute(String)
和removeAttribute(String)
。您可以在此处列出您正在讨论的Java SE案例列表。
在EJB上下文中:
@Singleton
会话EJB(更好)从Web或EJB,使用CDI:
@ApplicationScoped
bean(CDI术语中的单例)答案 1 :(得分:1)
我认为具有同步列表的单个对象将按预期工作