Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在运行时更改init参数?_Java_Servlets - Fatal编程技术网

Java 如何在运行时更改init参数?

Java 如何在运行时更改init参数?,java,servlets,Java,Servlets,如果我修改XML以更改init参数的值 我只在重新部署web应用程序时才看到更改 我的问题是,我不能通过在运行时设置值来解决这个问题。是否有允许我动态更改值的API。它之所以称为init parameter,是有原因的。所以,你不能 但您可以在运行时更改值,这没有问题 读取init参数后,将其作为ServletContext(ctx.setAttribute(“name”,value))的属性放置 创建一个小的(受密码保护的)页面,列出ServletContext的所有属性,并提供更改这些属性的

如果我修改XML以更改init参数的值 我只在重新部署web应用程序时才看到更改


我的问题是,我不能通过在运行时设置值来解决这个问题。是否有允许我动态更改值的API。

它之所以称为
init parameter
,是有原因的。所以,你不能

但您可以在运行时更改值,这没有问题

  • 读取init参数后,将其作为
    ServletContext
    ctx.setAttribute(“name”,value)
    )的属性放置
  • 创建一个小的(受密码保护的)页面,列出
    ServletContext
    的所有属性,并提供更改这些属性的功能
  • 也许您可以使用,特别是查看…

    改为使用并编写代码,以便它1)每次都从中读取值,或2)可以在命令中重新加载值,或3)以一定的间隔自动重新加载文件

    如果将属性文件放在webapp的运行时类路径中的某个位置,或将其路径添加到webapp的运行时类路径,则可以按如下方式轻松访问/加载它:

    Properties properties = new Properties();
    properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("filename.properties"));
    String value = properties.get("key");