【问题标题】:Possible to have listener notified after ServletContext initialization?可能在 ServletContext 初始化后通知侦听器?
【发布时间】:2013-03-07 02:04:03
【问题描述】:

在 Servlet 3.0 中,应用程序的 ServletContainerInitializer 实现(如果有)在应用程序第一次 BEGINS 启动时被调用,并且任何 ServletContextListeners(如果有)在不久之后被调用,但仍然因为上下文是 BEGINNING 初始化。同样,如果您有任何设置了 load-on-startup 的 Servlets,则它们的 init 方法会在 Servlets 正在启动时被调用,但仍在上下文完成初始化之前。

在所有这些情况下,上下文都没有完成初始化。这很好,我理解并同意这样做的原因。然而,我正在寻找的是一种在上下文完成初始化并开始营业后立即得到通知的方法。例如,这种监听器应该有可能(不是说我想这样做)对它所在的应用程序执行 Web 请求。对于上述任何监听器/初始化器来说,这是不可能的,因为它们在应用程序监听请求之前被调用。

可以这样做吗?不必严格地是 Servlet 规范提供的方法。可能是 Spring Framework 或其他执行此任务的库。

【问题讨论】:

    标签: servlets servlet-listeners


    【解决方案1】:

    你可以使用JBoss Seam他们有servlet生命周期事件@Initialized

    public void observeServletContextInitialized(@Observes @Initialized ServletContext ctx) 
    {
        System.out.println(ctx.getServletContextName() + " initialized");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多