在Java Web应用程序中,设置(或设置时使用的最佳机制)在应用程序范围内使用的字符串(或字符串)的最佳位置,应该永远不会改变应用程序正在运行,很可能从未在给定服务器上安装之后?
关键在于,我希望能够在任何地方(在JSP中的Java类-OR-中)访问它,因为这可以用于应用程序名称,URL,地址等。电话号码等
我相信“最简单”将在每个JSP中使用application.setAttribute()
(或者可能在全局包含文件等中),但这几乎没有意义,因为它从来没有变化 - 为什么要继续设置呢?但是,在应用程序上下文中设置它将提供使用EL表达式或application.getAttribute()
来检索值的能力 - 是否有更好的方法或更好的地方设置这样的属性?不知何故在web.xml中?不知道为什么这么难找......也许我只是不知道要问谷歌的问题。
答案 0 :(得分:1)
@WebListener
public class Config implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent event) {
Data data = createItSomehow();
event.getServletContext().setAttribute("data", data);
}
@Override
public void contextDestroyed(ServletContextEvent event) {
// NOOP.
}
}
它将在${data}
的EL范围内提供。