我想要在jsp文件中獲取catalina.bat中定義的JAVA_OPTS值。有人可以告訴我該怎麼做。如何獲得jsp中的JAVA_OPTS值
例如:在catalina.bat中我JAVA_OPTS定義是像
JAVA_OPS = -DMyProjectHome = d:\項目
我想有MyProjectHome的在運行時JSP文件,所以我的價值試圖做的是$ {MyProjectHome}但它沒有做任何事情。
還是有辦法,我可以在
定義JAVA_OPTS值請幫我實現我的功能。
謝謝。
我想要在jsp文件中獲取catalina.bat中定義的JAVA_OPTS值。有人可以告訴我該怎麼做。如何獲得jsp中的JAVA_OPTS值
例如:在catalina.bat中我JAVA_OPTS定義是像
JAVA_OPS = -DMyProjectHome = d:\項目
我想有MyProjectHome的在運行時JSP文件,所以我的價值試圖做的是$ {MyProjectHome}但它沒有做任何事情。
還是有辦法,我可以在
定義JAVA_OPTS值請幫我實現我的功能。
謝謝。
通過-Dfoo=bar
傳遞給JVM的內容稱爲系統屬性。您可以使用System.getProperty()
來獲得它們的價值。雖然沒有標準標籤或JSP EL語法,但您必須使用scriptlet或實現自定義標籤。
這些是Java系統屬性。您可以通過Java函數訪問它
System.getProperty("MyProjectHome");
在JSP中可能有更好的方法來完成它,但這將起作用。
將它包裝在一個擴展了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中。甚至只是實施地圖。如果你擴展了HashMap,你將獲得HashMap成員的所有內存空間(比如它的表數組),這是你永遠不需要使用的。不過,您必須實施一些額外的方法(但可以安全地將UnsupportedOperations引入其中)。 – megaflop 2014-05-29 15:36:16
嘗試System.getenv( 「MyProjectHome」) – 2011-03-08 15:38:46