[英]How to access environment variables from JSP page
如何從JSP頁面訪問環境變量? 隱式對象之一是否可以訪問它們? 我找不到解決此特定問題的示例。 理想情況下,我正在尋找類似的東西:
<c:set var="where" value="${myEnvironment.machineName}">
您可以在服務器啟動時使用ServletContextListener讀取屬性文件,並將其存儲為應用程序范圍的屬性,以從應用程序中的任何位置訪問它。
遵循的步驟:
.properties:
machineName=xyz
web.xml:
<listener>
<listener-class>com.x.y.z.AppServletContextListener</listener-class>
</listener>
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
標簽的更多信息
<c:set>
標記是setProperty
操作的JSTL友好版本。 該標記很有用,因為它計算一個表達式並使用結果設置JavaBean
或java.util.Map
對象的值。
<c:set>
標記具有以下屬性:
如果指定了target,則還必須指定屬性。
在此處了解更多信息
如果您要查找示例代碼,請在此處找到。 請在以下帖子中找到它。 它可能會幫助您。
其他示波器上的更多示例。
<%-- Set scoped variables --%>
<c:set var="para" value="${41+1}" scope="page" />
<c:set var="para" value="${41+1}" scope="request" />
<c:set var="para" value="${41+1}" scope="session" />
<c:set var="para" value="${41+1}" scope="application" />
<%-- Print the values --%>
<c:out value="${pageScope.para}" />
<c:out value="${requestScope.para}" />
<c:out value="${sessionScope.para}" />
<c:out value="${applicationScope.para}" />
在你的情況,你已經設置的屬性where
默認page
范圍。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.