由于我发现了一个基于ServletContextListener的解决方案,因此尝试了该解决方案,以下是我使用的代码。
@Override
public void contextInitialized(ServletContextEvent arg0) {
final String props = "/config.properties";
final Properties propsFromFile = new Properties();
System.out.println("******ServletContextListener started******");
//String email= getServletContext().getInitParameter("AdministratorEmail");
//
//
try {
propsFromFile.load(getClass().getResourceAsStream(props));
} catch (final IOException e) {
e.printStackTrace();
}
for (String prop : propsFromFile.stringPropertyNames())
{
if (System.getProperty(prop) == null)
{
System.setProperty(prop, propsFromFile.getProperty(prop));
System.out.println(prop+"="+propsFromFile.getProperty(prop));
}
}
}` protected void doPost(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException
{
PrintWriter pw=res.getWriter();
res.setContentType("text/html");
ServletContext context=getServletContext();
String s1= getServletContext().getInitParameter("conf.dir");
pw.println("S1 value is "+s1);
pw.close();
}
在Web.xml中,我使用了以下代码
<context-param>
<param-name>conf.dir</param-name>
<param-value>${conf.dir}</param-value>
</context-param>
在.properties文件中
conf.dir=configuration_files
但是当我尝试使用以下代码访问变量
ServletContext context=getServletContext();
String s1= getServletContext().getInitParameter("conf.dir");
我得到的输出为 $ {conf.dir} 但是我想要的是“ configuration_files”
有什么办法可以做到这一点?