控制servlet何时死亡

时间:2011-05-03 02:38:45

标签: java servlets websphere

我有一些配置存储在servlet上下文中,在servlet之间共享。当前的方法是在调用任何servlet的init()方法时将配置加载到servlet共享的静态hashmap的单个副本中。但问题是servlet不会死,所以即使我更改了servlet上下文中的配置,配置也不会重置。因为servlet再也不会调用init(),所以它们不会将配置重新加载到hashmap中。

我正在使用websphere 7,有什么地方我可以配置什么时候servlet死了,一个新的servlet诞生了?

我认为在有新请求时从servlet上下文重新加载配置太笨拙了。


编辑: 我有一个调度程序,它将创建一个新线程来检查特定的数据文件,如果数据文件是新的,它将创建一个hashmap(包含数据文件的内容)作为servlet上下文中的属性。

现在,servlet将检查hashmap的servlet上下文,并将其复制到静态hashmap,以便在servlet刚创建时共享使用并调用init()。但问题是servlet在执行过程中不会死,它只会使计划的操作无效。

2 个答案:

答案 0 :(得分:0)

为什么不将这些数据存储在JNDI中,servlet可以在需要时获取它?这样,您就可以完全控制数据; servlet生命周期将不再重要。

答案 1 :(得分:0)

  

我正在使用websphere 7,有没有   我可以配置的时间   servlet死了,一个新的servlet是   出生?

没有

  

编辑:我有一个调度程序   创建一个新线程来检查a   特定数据文件,如果是数据文件   是新的,它将创建一个hashmap(用   数据文件的内容)   servlet上下文中的属性。

     

现在servlet将检查   hashmap和的servlet上下文   将其复制到静态hashmap以进行共享   在servlet中使用它们   创建并调用init()。但是   问题是servlet不会死   在执行期间,它只是做了   预定的行动不起作用。

将设置重构为servlet实例共享的单独数据对象(而不是HashMap或servlet实例字段)。更改调度程序/警报以直接更新共享数据对象。