2015-01-26 2 views
-1

Web-app에서 init-param을 사용하려고하고 ServletContextListener와 함께 사용하려고합니다. 나중에 내 서블릿을 선택하여 사용자에게 표시해야합니다. 내가 할 수있는 모든 일을했지만 오류가 발생했습니다. 뭔가 잘못되어 볼 수 없습니다.내가 뭘 잘못 했니? ServletContextListener를 사용하여 web.xml에서 context-param을 사용하려고 시도했습니다.

내 web.xml을

<web-app> 
<context-param> 
<param-name>name</param-name> 
<param-value>Abdi</param-value> 
</context-param> 
</web-app> 

내 클래스 :

@WebListener 
public class Developer implements ServletContextListener{ 


@Override 
public void contextDestroyed(ServletContextEvent e) { 


    System.out.println("Destroyed!"); 



} 

@Override 
public void contextInitialized(ServletContextEvent e) { 
    ServletContext cntxt = e.getServletContext(); 

    String name = e.getServletContext().getInitParameter(name); 

    DevInfo student = new DevInfo(name); 

    cntxt.setAttribute("student", student); 

} 



    } 

다른 클래스 :

public class DevInfo { 

private String name; 


public DevInfo (String name) { 
    this.name = name; 

} 

public String getName() { 
    return name; 
} 

} 

서블릿 :

DevInfo stu = (DevInfo)getServletContext().getAttribute("student"); 

    System.out.println("Developers name is: " + stu.getName()); 

오류가 contextInitialized 메소드에 있습니다. e.getServletContext(). "지역 변수 이름이 초기화되지 않았습니다."getInitParameter (name);

답변

2

얻을 수있는 실제적인 방법은 context-paramparam-valuegetInitParameter 방법에 param-name을 전달하는 것입니다 :

String name = e.getServletContext().getInitParameter("name"); 

당신은 따옴표로 name을 넣어 잊어 버렸습니다.

+0

네, 고쳐 주셔서 감사합니다. 문제가 사라졌습니다. 이제 새로운 문제가 생겼습니다. "개발자 명 : null" –

+0

e.getServletContext(). getInitParameter ("name")'에 의해 반환되는 값은 무엇입니까? –

+0

무슨 소리 야? –

관련 문제