[英]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加载该文件。 您需要知道的唯一事情是Glassfish在您的应用程序运行时使用的工作路径。 你可以试试像这样的System.getProperty(“user.dir”);
从那里,您可以使用相对路径加载文件。 www.exampledepot.com上的示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.