Java ServletContextListener上下文中是否需要ServletContext removeAttribute

Java ServletContextListener上下文中是否需要ServletContext removeAttribute,java,servlets,Java,Servlets,我在ServletContextListener实现中看到了许多开发人员编写的源代码,如下所示(示例) 我的问题是,在上面的例子中,我们真的需要将行标记为“line_REMOVE”吗 我认为我们不需要它,因为当contextDestroyed执行时,servletContext将被完全销毁,所以它的属性也将被删除 感谢您的想法。销毁ServletContext后,无需删除该属性。但是,如果要侦听属性删除事件,可以使用ServletContextAttributeListener在销毁Servle

我在ServletContextListener实现中看到了许多开发人员编写的源代码,如下所示(示例)

我的问题是,在上面的例子中,我们真的需要将行标记为“line_REMOVE”吗

我认为我们不需要它,因为当contextDestroyed执行时,servletContext将被完全销毁,所以它的属性也将被删除


感谢您的想法。

销毁
ServletContext
后,无需删除该属性。但是,如果要侦听属性删除事件,可以使用
ServletContextAttributeListener

在销毁
ServletContext
后不必删除属性。但是,如果要侦听属性删除事件,可以使用
ServletContextAttributeListener

,尽管通常不需要它,您正在查看的代码可能还具有一个自定义功能,用于侦听这些上下文属性的删除并相应地执行某些操作。

尽管通常不需要它,您正在查看的代码可能还具有一个自定义功能,用于侦听这些上下文属性的删除,并相应地执行一些操作。

谢谢。您的想法与@Sotirios Delimanolis ideas类似。谢谢。您的想法与@Sotirios Delimanolis ideas类似。
    public class ServletContextListenerImpl implements ServletContextListener {

    @Override
public void contextInitialized(ServletContextEvent sce) {
    sce.getServletContext().setAttribute("attribute1", new Bean1());
}

@Override
public void contextDestroyed(ServletContextEvent sce) {
    sce.getServletContext().removeAttribute("attribute1");  //--- LINE_REMOVE
}