如何从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友好版本。 标记很有用,因为它评估表达式并使用结果设置JavaBean
或java.util.Map
对象的值。
标记具有以下属性:
如果指定了target,则还必须指定property。
在这里阅读更多相关信息
如果您正在寻找示例代码,请在此处找到它。 请在下面的post中找到它。 它可能对你有所帮助。
-
使用jstl访问两个jsp之间的值
-
JSP – 标准标记库(JSTL)教程
其他范围的更多样本。
<%-- Set scoped variables --%> <%-- Print the values --%>
在您的情况下,您已在默认page
范围中设置了一个属性。