我看到了许多开发人员在ServletContextListener实现中编写的源代码(示例)
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
}我的问题是,我们真的需要在上面的例子中标记"LINE_REMOVE“行吗?
我认为我们不需要它,因为当contextDestroyed执行时,servletContext即将完全销毁,因此它的属性也将被删除。
谢谢你的想法。
发布于 2013-11-27 15:17:25
虽然通常不需要它,但是您正在查看的代码也可能有一个自定义ServletContextAttributeListener,它侦听上下文属性的这些删除并相应地执行一些操作。
发布于 2013-11-27 15:17:02
在ServletContext被销毁后,不需要删除该属性。但是,如果要侦听属性删除事件,可以使用ServletContextAttributeListener
https://stackoverflow.com/questions/20246160
复制相似问题