我做错了什么?尝试在web中使用context-param.xml与ServletContextListener



我正在尝试在我的Web应用程序中使用init-param,并将其与ServletContextListener一起使用。这应该稍后被拾取我的 servlet 并显示给用户。我已经尽我所能,但我遇到了一个错误。有些不对劲,我看不出来。

我的网络.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;
}
}

Servlet:

   DevInfo stu = (DevInfo)getServletContext().getAttribute("student");
    System.out.println("Developers name is: " + stu.getName());

我的错误在上下文初始化方法中。"局部变量名称可能尚未初始化"在 e.getServletContext().getInitParameter(name);

获取context-param param-value的实际方法是传递getInitParameter方法的param-name

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

你忘了把name放在引号里。

最新更新