如何为Java Web应用程序设置参数

DP_*_*DP_ 10 java java-ee

我有一个Java的Web应用程序,它使用一些外部程序(调用命令行工具).

我想使命令行程序的路径可配置,以便我可以更改它而无需重新构建我的应用程序.

问题:

1)我应该使用哪个参数(在web.xml中可用的参数),如果它只设置一次(在部署时),之后永远不会更改?

2)如何在Java代码中访问此参数?

提前致谢

德米特里

Jig*_*shi 11

web.xml中

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app>
  <context-param>
    <param-name>command</param-name>
    <param-value>SOME_COMMAND</param-value>
  </context-param>
.
.
.
.
</web-app>
Run Code Online (Sandbox Code Playgroud)

Java代码

String commandToExecute =  getServletContext().getInitParameter("command");
Run Code Online (Sandbox Code Playgroud)

另外

你也可以将这个东西放在classpath的property/xml文件中读取它,并在上下文初始化时将它放到servlet上下文中.


JB *_*zet 7

您可以使用env条目:

<env-entry>
    <description>command line</descriptor>
    <env-entry-name>commandLine</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>some_command</env-entry-value>
</env-entry>
Run Code Online (Sandbox Code Playgroud)

并从您的webapp代码中的任何位置获取它:

javax.naming.Context ctx = new javax.naming.InitialContext();
String command = (String) ctx.lookup("java:comp/env/commandLine");
Run Code Online (Sandbox Code Playgroud)