为什么在以下代码示例中 config.getInitParameter(String)
总是返回 null
?
public void init(ServletConfig config) throws ServletException
{
super.init(config);
filename = config.getInitParameter("addressfile");
这是 web.xml 文件
<servlet>
<servlet-name>ListManagerServlet</servlet-name>
<servlet-class>savva.listmanagerservlet.ListManagerServlet</servlet-class>
<init-param>
<param-name>addressfile</param-name>
<param-value>d:\temp\demo.txt</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ListManagerServlet</servlet-name>
<url-pattern>/ListManagerServlet</url-pattern>
</servlet-mapping>
UPD:Eclipse EE Indigo、Java 1.6、Tomcat 7.0
最佳答案
规范的方法是只使用继承的 GenericServlet#getInitParameter()
在无争议的init()
方法(并删除任何init(config)
方法)。
@Override
public void init() throws ServletException {
filename = getInitParameter("addressfile");
}
如果仍然不起作用,那么您的 web.xml
没有正确部署,或者您在参数名称中有错字,或者您实际上访问了与 不同的实例变量>filename
来使用/测试它。
关于java - config.getInitParameter 始终返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8401851/