【问题标题】:How to get JAVA_OPTS value in jsp如何在jsp中获取JAVA_OPTS值
【发布时间】:2011-03-08 15:36:26
【问题描述】:

我正在尝试在 jsp 文件中获取 catalina.bat 中定义的 JAVA_OPTS 值。谁能告诉我该怎么做。

例如:我在 catalina.bat 中的 JAVA_OPTS 定义是这样的

JAVA_OPS= -DMyProjectHome=D:\Projects

我想在运行时在 jsp 文件中拥有 MyProjectHome 的值,所以我想做的是 ${MyProjectHome} 但它什么也没做。

或者有什么方法可以在

中定义 JAVA_OPTS 值

请帮助我实现我的功能。

谢谢。

【问题讨论】:

  • 试试 System.getenv("MyProjectHome")

标签: jsp environment-variables


【解决方案1】:

您使用-Dfoo=bar 传递给JVM 的内容称为系统属性。您可以使用System.getProperty() 获得它们的价值。但是,没有标准标签或 JSP EL 语法来获取它们,因此您必须使用 scriptlet 或实现自定义标签。

【讨论】:

    【解决方案2】:

    将它包装在一个扩展 Map 的类中。

    public class SystemProperties extends HashMap<String, String> {
    
        @Override
        public String get(Object name) {
            return System.getProperty(name != null ? name.toString() : null);
        }
    
    }
    

    在JSP中声明如下。

    <jsp:useBean id="systemProperties" class="com.example.SystemProperties" scope="application" />
    

    那么你可以在EL中把它当作Map

    ${systemProperties['MyProjectHome']}
    

    ${systemProperties.MyProjectHome}
    

    【讨论】:

    • 扩展 AbstractMap 可能比 HashMap 更好。甚至只是实现 Map。如果您扩展 HashMap,您将获得永远不需要使用的 HashMap 成员的所有内存占用(例如它的表数组)。不过,您将不得不实现一些额外的方法(但可以安全地在其中抛出 UnsupportedOperations)。
    【解决方案3】:

    这些是 Java 系统属性。您可以通过Java函数访问它

    System.getProperty("MyProjectHome");
    

    在 JSP 中可能有更好的方法,但它会起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-16
      • 1970-01-01
      • 1970-01-01
      • 2012-09-01
      • 1970-01-01
      • 2015-06-04
      • 2010-10-18
      相关资源
      最近更新 更多