在java中使用应用程序范围变量

时间:2012-06-18 21:30:25

标签: global-variables scope

我公司将在未来几个月内重新访问我们的网站,从ColdFusion网站转到用Java编写的网站。我只是在学习Java,我很好奇如何在Java Web应用程序中设置应用程序范围变量。 ColdFusion有application.cfm文件,该文件包含应用程序中所有ColdFusion页面/组件都可访问的变量。 Java显然没有直接等效于该文件,所以我想知道如何在Java中重新创建类似的东西。我希望有一个中心位置,webapp中的所有jsp页面,servlet,类等都可以访问。

那么做这样的事情最好的方法是什么?

有没有人有类似他们所做的事情的例子?

应用范围变量应该放在一个类中吗?一个xml文件?一个jsp页面?别的什么?

在java webapp中使用应用程序范围变量是否可行?

实施例: 它可以是一个说明图像文件夹路径的地方,因此在单个JSP页面或类或任何需要访问该图像文件夹的内容中,您可以引用该路径的应用程序范围变量,而不是在每个地方写出来。然后,如果由于某种原因我们需要移动该图像文件夹的位置,我们只需更改一个位置的路径变量,而不必更新引用该图像文件夹的20个位置。

我在网上的研究中找不到关于此类事情的任何信息,这就是我在这里问的原因。我知道要求对这类事情做出解释是很多的,但我想我会问,看看我能得到什么类型的回应。

感谢您就此主题提供的任何帮助。

1 个答案:

答案 0 :(得分:27)

等价物可能是ServletContext

在你的控制器servlet中:

ServletContext context = request.getSession().getServletContext();

就像在会话对象中一样,您也可以在servlet上下文中存储属性

context.setAttribute("someValue", "aValue");

Object attribute = context.getAttribute("someValue");

如果你刚开始使用Java并且有一个非常重要的应用程序来构建,我建议使用像SpringStruts这样的流行框架