2013-09-05 34 views
-1

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

感谢 明

+0

加载类时将执行“静态”代码块,因此它将首先执行。如果你发布一个你想要实现的真实特定样本,而不是仅仅询问,那会更好。请注意,在两种情况下,都可以通过'System.out.println'轻松证明。 –

回答

3

我想你的类和对象的生命周期的误解。

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

ServletContextEventHandler的一个对象,我假设你的意思是ServletContextListener,它是一个钩子,当它初始化并被销毁时,你可以用它来访问应用程序的ServletContext

+0

有关类加载器如何在java中工作的更多信息,请参阅http://stackoverflow.com/q/11395074/1065197和网络中的其他链接,如http://javarevisited.blogspot.com/2012/12/how- classloader-works-in-java.html和http://www.javaworld.com/jw-10-1996/jw-10-indepth.html –

+0

还有一个:http://javarevisited.blogspot.ca/2012/ 07 /当类加载,初始化-java的example.html的 –