0

在 Java Web 应用程序中,设置(或设置时使用的最佳机制)一个字符串(或多个字符串)以供使用的最佳位置在哪里,应用程序范围内,在应用程序运行时永远不会更改,并且很可能之后永远不会更改它安装在给定的服务器上?

关键的一件事是我希望能够在任何地方访问它(在 Java 类中 - 或 - 在 JSP 中),因为这将用于诸如应用程序名称、URL、地址、电话号码之类的东西,等等

我相信“最简单”的方法是application.setAttribute()在每个 JSP 中使用(或者可能在全局包含文件等中),但这几乎没有意义,因为它永远不会改变 - 为什么要继续设置它?但是,在应用程序上下文中设置它会提供使用 EL 表达式或application.getAttribute()检索值的能力——有没有更好的方法或更好的地方来设置这样的属性?以某种方式在 web.xml 中?不知道为什么这么难找到...也许我只是不知道要问 Google 的问题。

4

1 回答 1

1

使用ServletContextListener.

@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.
    }

}

它将在 EL 范围内可用${data}

于 2012-03-07T15:42:46.097 回答