javax.servlet.ServletContextListener类的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(11.2k)|赞(0)|评价(0)|浏览(121)

本文整理了Java中javax.servlet.ServletContextListener类的一些代码示例,展示了ServletContextListener类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ServletContextListener类的具体详情如下:
包路径:javax.servlet.ServletContextListener
类名称:ServletContextListener

ServletContextListener介绍

[英]Interface for receiving notification events about ServletContext lifecycle changes.

In order to receive these notification events, the implementation class must be either declared in the deployment descriptor of the web application, annotated with javax.servlet.annotation.WebListener, or registered via one of the addListener methods defined on ServletContext.

Implementations of this interface are invoked at their #contextInitialized method in the order in which they have been declared, and at their #contextDestroyed method in reverse order.
[中]用于接收有关ServletContext生命周期更改的通知事件的接口。
为了接收这些通知事件,必须在web应用程序的部署描述符中声明实现类,并用javax进行注释。servlet。注释。WebListener,或通过ServletContext上定义的addListener方法之一注册。
该接口的实现在其#contextInitialized方法中按声明顺序调用,在#contextDestroyed方法中按相反顺序调用。

代码示例

代码示例来源:origin: org.freemarker/freemarker

public void contextInitialized(ServletContextEvent arg0) {
  arg0.getServletContext().setAttribute(ATTR_NAME, this);
  
  synchronized (servletContextListeners) {
    int s = servletContextListeners.size();
    for (int i = 0; i < s; ++i) {
      ((ServletContextListener) servletContextListeners.get(i)).contextInitialized(arg0);
    }
  }
}

代码示例来源:origin: org.freemarker/freemarker

public void contextDestroyed(ServletContextEvent arg0) {
  synchronized (servletContextListeners) {
    int s = servletContextListeners.size();
    for (int i = s - 1; i >= 0; --i) {
      ((ServletContextListener) servletContextListeners.get(i)).contextDestroyed(arg0);
    }
  }
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void testContextLoaderListenerWithDefaultContext() {
  MockServletContext sc = new MockServletContext("");
  sc.addInitParameter(ContextLoader.CONFIG_LOCATION_PARAM,
      "/org/springframework/web/context/WEB-INF/applicationContext.xml " +
      "/org/springframework/web/context/WEB-INF/context-addition.xml");
  ServletContextListener listener = new ContextLoaderListener();
  ServletContextEvent event = new ServletContextEvent(sc);
  listener.contextInitialized(event);
  String contextAttr = WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE;
  WebApplicationContext context = (WebApplicationContext) sc.getAttribute(contextAttr);
  assertTrue("Correct WebApplicationContext exposed in ServletContext", context instanceof XmlWebApplicationContext);
  assertTrue(WebApplicationContextUtils.getRequiredWebApplicationContext(sc) instanceof XmlWebApplicationContext);
  LifecycleBean lb = (LifecycleBean) context.getBean("lifecycle");
  assertTrue("Has father", context.containsBean("father"));
  assertTrue("Has rod", context.containsBean("rod"));
  assertTrue("Has kerry", context.containsBean("kerry"));
  assertTrue("Not destroyed", !lb.isDestroyed());
  assertFalse(context.containsBean("beans1.bean1"));
  assertFalse(context.containsBean("beans1.bean2"));
  listener.contextDestroyed(event);
  assertTrue("Destroyed", lb.isDestroyed());
  assertNull(sc.getAttribute(contextAttr));
  assertNull(WebApplicationContextUtils.getWebApplicationContext(sc));
}

代码示例来源:origin: haraldk/TwelveMonkeys

@Test
public void testContextDestroyed() {
  ServletContext context = mock(ServletContext.class);
  ServletContextEvent destroyed = mock(ServletContextEvent.class);
  when(destroyed.getServletContext()).thenReturn(context);
  ServletContextListener listener = new IIOProviderContextListener();
  listener.contextInitialized(mock(ServletContextEvent.class));
  listener.contextDestroyed(destroyed);
}

代码示例来源:origin: spring-projects/spring-framework

@Override
public <T extends EventListener> void addListener(T t) {
  if (t instanceof ServletContextListener) {
    ((ServletContextListener) t).contextInitialized(new ServletContextEvent(this));
  }
}

代码示例来源:origin: com.liferay.portal/com.liferay.portal.kernel

@Override
protected void fireUndeployEvent() {
  if (_servletContextListeners != null) {
    ServletContextEvent servletContextEvent = new ServletContextEvent(
      servletContext);
    for (ServletContextListener servletContextListener :
        _servletContextListeners) {
      try {
        servletContextListener.contextDestroyed(
          servletContextEvent);
      }
      catch (Throwable t) {
        String className = ClassUtil.getClassName(
          servletContextListener.getClass());
        _log.error(
          StringBundler.concat(
            className, " is unable to process a context ",
            "destroyed event for ",
            servletContext.getServletContextName()),
          t);
      }
    }
  }
  super.fireUndeployEvent();
}

代码示例来源:origin: haraldk/TwelveMonkeys

@Test
public void testContextInitialized() {
  ServletContextListener listener = new IIOProviderContextListener();
  listener.contextInitialized(mock(ServletContextEvent.class));
}

代码示例来源:origin: haraldk/TwelveMonkeys

@Test
public void testDestroyConcurrentModRegression() {
  ServletContext context = mock(ServletContext.class);
  ServletContextEvent destroyed = mock(ServletContextEvent.class);
  when(destroyed.getServletContext()).thenReturn(context);
  ServletContextListener listener = new IIOProviderContextListener();
  listener.contextInitialized(mock(ServletContextEvent.class));
  ImageReaderSpi provider1 = new MockImageReaderSpiOne();
  ImageReaderSpi provider2 = new MockImageReaderSpiToo();
  // NOTE: Fake registering for simplicity, but it still exposes the original problem with de-registering
  IIORegistry registry = IIORegistry.getDefaultInstance();
  registry.registerServiceProvider(provider1);
  registry.registerServiceProvider(provider2);
  assertTrue(registry.contains(provider1));
  assertTrue(registry.contains(provider2));
  listener.contextDestroyed(destroyed);
  assertFalse(registry.contains(provider1));
  assertFalse(registry.contains(provider2));
}

代码示例来源:origin: spring-projects/spring-framework

/**
 * Addresses the issues raised in <a
 * href="http://opensource.atlassian.com/projects/spring/browse/SPR-4008"
 * target="_blank">SPR-4008</a>: <em>Supply an opportunity to customize
 * context before calling refresh in ContextLoaders</em>.
 */
@Test
public void testContextLoaderListenerWithCustomizedContextLoader() {
  final StringBuffer buffer = new StringBuffer();
  final String expectedContents = "customizeContext() was called";
  final MockServletContext sc = new MockServletContext("");
  sc.addInitParameter(ContextLoader.CONFIG_LOCATION_PARAM,
      "/org/springframework/web/context/WEB-INF/applicationContext.xml");
  ServletContextListener listener = new ContextLoaderListener() {
    @Override
    protected void customizeContext(ServletContext sc, ConfigurableWebApplicationContext wac) {
      assertNotNull("The ServletContext should not be null.", sc);
      assertEquals("Verifying that we received the expected ServletContext.", sc, sc);
      assertFalse("The ApplicationContext should not yet have been refreshed.", wac.isActive());
      buffer.append(expectedContents);
    }
  };
  listener.contextInitialized(new ServletContextEvent(sc));
  assertEquals("customizeContext() should have been called.", expectedContents, buffer.toString());
}

代码示例来源:origin: net.sourceforge.stripes/stripes

/**Removes and destroys all registered {@link ServletContextListener}. */
public MockServletContext removeListeners() {
  ServletContextEvent e = new ServletContextEvent(this);
  for (ServletContextListener l : listeners) {
    l.contextDestroyed(e);
  }
  listeners.clear();
  return this;
}

代码示例来源:origin: com.vaadin/flow-server

@Override
public void contextInitialized(ServletContextEvent sce) {
  for (ServletContextListener listener : listeners) {
    listener.contextInitialized(sce);
  }
}

代码示例来源:origin: org.freemarker/com.springsource.freemarker

public void contextInitialized(ServletContextEvent arg0)
{
  arg0.getServletContext().setAttribute(ATTR_NAME, this);
  
  synchronized(servletContextListeners)
  {
    int s = servletContextListeners.size();
    for(int i = 0; i < s; ++i)
    {
      ((ServletContextListener)servletContextListeners.get(i)).contextInitialized(arg0);
    }
  }
}

代码示例来源:origin: com.twelvemonkeys.servlet/servlet

@Test
public void testContextDestroyed() {
  ServletContext context = mock(ServletContext.class);
  ServletContextEvent destroyed = mock(ServletContextEvent.class);
  when(destroyed.getServletContext()).thenReturn(context);
  ServletContextListener listener = new IIOProviderContextListener();
  listener.contextInitialized(mock(ServletContextEvent.class));
  listener.contextDestroyed(destroyed);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void testContextLoaderWithDefaultLocation() throws Exception {
  MockServletContext sc = new MockServletContext("");
  ServletContextListener listener = new ContextLoaderListener();
  ServletContextEvent event = new ServletContextEvent(sc);
  try {
    listener.contextInitialized(event);
    fail("Should have thrown BeanDefinitionStoreException");
  }
  catch (BeanDefinitionStoreException ex) {
    // expected
    assertTrue(ex.getCause() instanceof IOException);
    assertTrue(ex.getCause().getMessage().contains("/WEB-INF/applicationContext.xml"));
  }
}

代码示例来源:origin: StripesFramework/stripes

/**
 * Removes and destroys all registered {@link ServletContextListener}.
 * @return 
 */
public MockServletContext removeListeners() {
  ServletContextEvent e = new ServletContextEvent(this);
  for (ServletContextListener l : listeners) {
    l.contextDestroyed(e);
  }
  listeners.clear();
  return this;
}

代码示例来源:origin: org.tinygroup/org.tinygroup.weblayerbase

private void stopListeners() {
  for (ServletContextListener listener : listeners) {
    listener.contextDestroyed(event);
  }
}

代码示例来源:origin: org.apache.tomee/openejb-core

@Override
  public void run() {
    ((ServletContextListener) instance).contextInitialized(sce);
  }
});

代码示例来源:origin: org.freemarker/freemarker-gae

public void contextInitialized(ServletContextEvent arg0) {
  arg0.getServletContext().setAttribute(ATTR_NAME, this);
  
  synchronized (servletContextListeners) {
    int s = servletContextListeners.size();
    for (int i = 0; i < s; ++i) {
      ((ServletContextListener) servletContextListeners.get(i)).contextInitialized(arg0);
    }
  }
}

代码示例来源:origin: com.twelvemonkeys.servlet/servlet

@Test
public void testDestroyConcurrentModRegression() {
  ServletContext context = mock(ServletContext.class);
  ServletContextEvent destroyed = mock(ServletContextEvent.class);
  when(destroyed.getServletContext()).thenReturn(context);
  ServletContextListener listener = new IIOProviderContextListener();
  listener.contextInitialized(mock(ServletContextEvent.class));
  ImageReaderSpi provider1 = new MockImageReaderSpiOne();
  ImageReaderSpi provider2 = new MockImageReaderSpiToo();
  // NOTE: Fake registering for simplicity, but it still exposes the original problem with de-registering
  IIORegistry registry = IIORegistry.getDefaultInstance();
  registry.registerServiceProvider(provider1);
  registry.registerServiceProvider(provider2);
  assertTrue(registry.contains(provider1));
  assertTrue(registry.contains(provider2));
  listener.contextDestroyed(destroyed);
  assertFalse(registry.contains(provider1));
  assertFalse(registry.contains(provider2));
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void testContextLoaderWithCustomContext() throws Exception {
  MockServletContext sc = new MockServletContext("");
  sc.addInitParameter(ContextLoader.CONTEXT_CLASS_PARAM,
      "org.springframework.web.servlet.SimpleWebApplicationContext");
  ServletContextListener listener = new ContextLoaderListener();
  ServletContextEvent event = new ServletContextEvent(sc);
  listener.contextInitialized(event);
  String contextAttr = WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE;
  WebApplicationContext wc = (WebApplicationContext) sc.getAttribute(contextAttr);
  assertTrue("Correct WebApplicationContext exposed in ServletContext",
      wc instanceof SimpleWebApplicationContext);
}

相关文章