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