如何从JSP页面访问环境变量

如何从JSP页面访问环境变量? 其中一个隐式对象是否允许访问它们? 我找不到解决这个具体问题的例子。 理想情况下,我正在寻找类似的东西:

 

您可以使用ServletContextListener在服务器启动时读取属性文件,并将其存储为应用程序作用域属性,以便从应用程序的任何位置访问它。

要遵循的步骤:

的.properties:

 machineName=xyz 

web.xml中:

  com.xyzAppServletContextListener  

AppServletContextListener.java:

 public class AppServletContextListener implements ServletContextListener { private static Properties properties = new Properties(); static { // load properties file try { // absolute path on server outside the war // where properties files are stored String absolutePath = ..; File file = new File(absolutePath); properties.load(new FileInputStream(file)); } catch (Exception e) { e.printStackTrace(); } } @Override public void contextDestroyed(ServletContextEvent servletContextEvent) { } @Override public void contextInitialized(ServletContextEvent servletContextEvent) { servletContextEvent.getServletContext(). setAttribute("myEnvironment", properties); } } 

JSP:

然后你可以把它当作EL中的Map。

 ${myEnvironment['machineName']} 

要么

 ${myEnvironment.machineName} 

阅读更多关于JSTL Core c:set Tag

标记是setProperty操作的JSTL友好版本。 标记很有用,因为它评估表达式并使用结果设置JavaBeanjava.util.Map对象的值。

标记具有以下属性:

在此处输入图像描述

如果指定了target,则还必须指定property。

在这里阅读更多相关信息


如果您正在寻找示例代码,请在此处找到它。 请在下面的post中找到它。 它可能对你有所帮助。

  • 使用jstl访问两个jsp之间的值

  • JSP – 标准标记库(JSTL)教程


其他范围的更多样本。

  <%-- Set scoped variables --%>     <%-- Print the values --%>     

在您的情况下,您已在默认page范围中设置了一个属性。