JSP应用程序设计:在何处设置应用程序范围的值

时间:2012-03-07 15:35:57

标签: jsp spring-mvc configuration persistence servletcontextlistener

在Java Web应用程序中,设置(或设置时使用的最佳机制)在应用程序范围内使用的字符串(或字符串)的最佳位置,应该永远不会改变应用程序正在运行,很可能从未在给定服务器上安装之后?

关键在于,我希望能够在任何地方(在JSP中的Java类-OR-中)访问它,因为这可以用于应用程序名称,URL,地址等。电话号码等

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

1 个答案:

答案 0 :(得分: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.
    }

}

它将在${data}的EL范围内提供。