用部署文件来存储配置参数在Java中是一种很流行的做法。

配置参数一般存放在context-param元素中,每一个context-param元素代表了一个键值对。

我们可以通过实现ServletContextListener接口读取该键值对中的值,在web应用程序初始化的时候,调用ServletContextListener的contextInitialized()方法,所以我们我们可以重写该方法,实现读取操作。可以这样实现:

public class AppListener implements ServletContextListener {


public void contextInitialized(ServletContextEvent sce) {
   try {
    Config config = Config.getConfig(); //存放配置信息,用Map实现
    ServletContext sc = sce.getServletContext();
    Enumeration parameters = sc.getInitParameterNames();
    while(parameters.hasMoreElements()) {
     String parameter = (String)parameters.nextElement();

    //相应的键值对存到map中
     config.addKeyValue(parameter, sc.getInitParameter(parameter));
    }
   } catch(Exception e) {
    System.out.println("com.shou error:" + e.getMessage());
   }
}

public void contextDestroyed(ServletContextEvent arg0) {

}
}

接着,必须在web.xml中配置相应的监听类,才能在初始化的时候,自动调用该方法。如:


com.shou.util.AppListener

这样就可以在任何一个JSP页面,通过EL表达式或JSTL读到context-param中的内容。