Java ServletContextEventHandler和静态块

Java ServletContextEventHandler和静态块,java,servlets,Java,Servlets,ServletContextEventHandler和静态块都具有较高的启动优先级。在使用上有什么区别?SC事件处理程序和静态块中应该放什么 谢谢 Ming我认为您对类和对象的生命周期有误解 加载类时执行静态块,这或多或少取决于应用程序使用的类加载器。在静态上下文中,您只能访问其他静态组件 类型为ServletContextEventHandler的对象(我假设您的意思是ServletContextListener)是一个钩子,您可以使用它在初始化和销毁应用程序时访问应用程序的ServletCo

ServletContextEventHandler和静态块都具有较高的启动优先级。在使用上有什么区别?SC事件处理程序和静态块中应该放什么

谢谢
Ming

我认为您对类和对象的生命周期有误解

加载类时执行
静态
块,这或多或少取决于应用程序使用的
类加载器
。在
静态
上下文中,您只能访问其他
静态
组件


类型为
ServletContextEventHandler
的对象(我假设您的意思是
ServletContextListener
)是一个钩子,您可以使用它在初始化和销毁应用程序时访问应用程序的
ServletContext

加载类时将执行
static
代码块,所以它将首先被执行。如果你发布一个你想要实现的真正具体的例子,而不是仅仅询问,那会更好。请注意,在这两种情况下,都可以通过
System.out.println
轻松证明这一点。有关类加载器在java中的工作方式的更多信息,请参阅和网络中的其他链接,如和,还有一个: