我想加载属性文件,当tomcat start.so我使用servletContextListener来做到这一点,我可以得到属性文件的值到我的Web应用程序。 但是我想在改变属性文件一次登录到web应用程序后保持相同的值。但是当我更改属性文件的值并再次登录到系统时,它将值更改为新的值。我想保留相同的值当tomcat正在启动时加载,我可以实现这个吗?问题属性文件
我的编码是如下
import javax.servlet.*;
import java.io.IOException;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.io.*;
import java.util.ResourceBundle;
public final class sysProperties implements javax.servlet.ServletContextListener {
private static Properties props = new Properties();
private static String file_name = "com/util/contact.properties";
public addSystemProperties() {
}
public void contextInitialized(ServletContextEvent servletContextEvent) {
// Get the context
ServletContext servletContext = servletContextEvent.getServletContext();
// Set a context attribute
try {
// props.load(servletContext.getResourceAsStream(file_name));
props.load(getClass().getClassLoader().getResourceAsStream(file_name));
System.out.println(" Application X is starting");
servletContext.setAttribute("h1",props.getProperty("home.h1"));
servletContext.setAttribute("h2",props.getProperty("home.h2"));
System.out.println("h1"+servletContext.getAttribute("h1"));
System.out.println("h2"+ servletContext.getAttribute("h2"));
;
} catch (Exception e) {
System.out.println(" Error setting context attribute: " + e.getMessage());
}
}
public void contextDestroyed(ServletContextEvent servletContextEvent) {
// Get the context
ServletContext servletContext = servletContextEvent.getServletContext();
// Output the context variable we set earlier
System.out.println(" Application X is shutting down");
System.out.println(" Value of h1 is: " + servletContext.getAttribute("h1"));
System.out.println(" Value of h2 is: " + servletContext.getAttribute("h2"));
// Clean up (not really necessary as the context is being destroyed, but let's be neat)
servletContext.removeAttribute(props.getProperty("h1"));
servletContext.removeAttribute(props.getProperty("h2"));
}
}
你确信你的情况下没有被重新加载? – Bozho 2010-01-13 11:10:23
当注销并记录到system.context未重新加载时,属性文件将再次加载。 – devuser 2010-01-13 11:37:06