簡體   English   中英

如何從WebApp讀取web.xml

[英]How to read the web.xml from a WebApp

對於WebApps,web.xml可用於存儲應用程序設置。 我該怎么讀這個文件。 我的servlet在GlassFish v2服務器上運行。

不確定我完全理解這個問題......

假設您的Servlet擴展了HttpServlet

HttpServlet實現了ServletConfig ,因此您可以使用以下命令找出特定於servlet的參數:

在web.xml中

<servlet>
    <servlet-class>com.acme.Foo</servlet-class>
    <init-param>
        <param-name>my.init.param</param-name>
        <param-value>10</param-value>
    </init-param>
</servlet>

在servlet中:

int x = Integer.parseInt(getInitParameter("my.init.param"));

同樣,您可以使用以下方式獲取全局(上下文范圍)設置:

<context-param>
    <param-name>my.context.param</param-name>
    <param-value>Hello World</param-value>
</context-param>

在servlet中:

String s = getServletContext.getInitParameter("my.context.param");

當然,如果您正在使用框架以及您的servlet,例如Spring,那么您可以使用Spring的配置文件將設置注入您的Web應用程序類。

添加init-param:

<init-param> 
    <param-name>InitParam</param-name> 
    <param-value>init param value</param-value> 
</init-param> 

然后從java代碼(在servlet中)讀取它:

String initParam = getServletConfig().getInitParameter("InitParam");

Doekman,是否可以解釋為什么要讀取web.xml文件? 此文件中的設置以WebContainer為目標。 如果要傳遞要由應用程序加載的配置參數,則只需使用上下文參數:

可選的context-param元素聲明Web應用程序的servlet上下文初始化參數。 您可以使用和元素在單個context-param元素中設置每個context-param。 您可以使用javax.servlet.ServletContext.getInitParameter()和javax.servlet.ServletContext.getInitParameterNames()方法在代碼中訪問這些參數。

如果您確實需要讀取該文件,那么我很確定您可以嘗試使用Java IO加載該文件。 您需要知道的唯一事情是Gla​​ssfish在您的應用程序運行時使用的工作路徑。 你可以試試像這樣的System.getProperty(“user.dir”);

從那里,您可以使用相對路徑加載文件。 www.exampledepot.com上的示例。

容器的選擇不應該與這個問題相關,因為每個容器都應該實現servlet容器規范,無論是Tomcat,Glassfish還是其他許多 容器之一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM