2009-09-18 4 views
1

컨텍스트를 설정하려고과 같이 속성 :getServletContext(). getAttribute()가 null을 돌려 주는가?

void init() 
{ 
    String testing = new String(); 
    testing = "This is a test"; 
    getServletContext().setAttribute("test", testing); 
} 

하나의 서블릿에서, 그래서 같은 속성을 받고 : 두 번째 서블릿에서

String testing = (String) getServletContext().getAttribute("test") 

, testingnull입니다.

내 서블릿이 별도의 컨텍스트에 있다는 것을 의미합니까? 그렇다면 어떻게 첫 번째 서블릿의 컨텍스트 속성에 액세스 할 수 있습니까? 필자가 자바/서블릿을 처음 접했을 때 참고 자료를 제공해주십시오.

나는 글래스 피시와 3

편집을 넷빈즈를 사용하고 있습니다 : 그들은 같은 웹 애플리케이션에 모두 모두

답변

4

서블릿이 모두 동일한 웹 애플리케이션에 있으면 기본적으로 초기화 순서가 정의되지 않습니다. 따라서 "두 번째"서블릿이 "첫 번째"전에 초기화됩니다 (web.xml의 순서에 따라). 당신은 서블릿 태그에 시작시로드 태그를 추가하여 문제를 해결할 수 있습니다

<servlet> 
    <servlet-name>first<servlet-name> 
    ... 
    <load-on-startup>1<load-on-startup> 
</servlet> 

<servlet> 
    <servlet-name>second<servlet-name> 
    ... 
    <load-on-startup>2<load-on-startup> 
</servlet> 
+0

감사합니다 같은 WEB-INF/web.xml에 정의 둘 다! 이것은 작동하는 것 같습니다. 이것은 내게 아침 내내 미치게했다. 왜 이것이 중요한지 알게됩니까? – moshen

0

나는 두 서블릿이 필요 믿고 같은 WEB-INF/web.xml 파일에 정의되어 있습니다 웹 응용 프로그램에 있어야합니다 (예 : 동일한 war 파일에 패키지 됨).

0

컨텍스트 == WAR는 ==

두 서블릿 컨텍스트를 공유하기 위해 같은 웹 애플리케이션 아래에 살고있다 웹 어플리케이션. 두 서블릿 클래스가 같은 WEB-INF/classes 아래에 있는지 확인하십시오.

+0

그들은 같은 웹 애플리케이션에 모두와 – moshen

관련 문제