2013-09-05 4 views
-1

ServletContextEventHandler와 정적 블록 모두 높은 시작 우선 순위를가집니다. 사용법에서 차이점은 무엇입니까? SC 이벤트 핸들러와 정적 블록에 무엇을 넣어야합니까?Java ServletContextEventHandler 및 정적 블록

감사 명나라

+0

'static' 코드 블록은 클래스를로드 할 때 실행되므로 먼저 실행됩니다. 당신이 성취하고자하는 것에 대한 구체적인 샘플을 묻는 대신 게시하는 것이 더 좋을 것입니다. 두 경우 모두'System.out.println'을 사용하면 쉽게 확인할 수 있습니다. –

답변

3

난 당신이 클래스와 객체의 라이프 사이클의 오해가 있다고 생각.

static 블록은 클래스가로드 될 때 실행되며이 정도는 응용 프로그램이 사용하는 ClassLoader에 달려 있습니다. static 컨텍스트에서는 다른 static 구성 요소에만 액세스 할 수 있습니다.

당신이 ServletContextListener을 의미 가정하는 유형 ServletContextEventHandler의 목적은, 사용자가 액세스하는 데 사용할 수있는 훅입니다 응용 프로그램의 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/when-class-loading-initialization-java-example.html –