如何在Servlet中从web.xml检索<servlet><init-param>的值?

3
我需要从xml中检索init-param值并将其应用于Servlet,我使用了以下代码。
<servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>LoginServlet</servlet-class>
    <init-param>
        <param-name>jdbcDriver</param-name>
        <param-value>com.mysql.jdbc.Driver</param-value>
    </init-param>
</servlet>

Servlet 代码

public void init(ServletConfig config) throws ServletException {
    super.init(config);
    System.out.println(config.getInitParameter("jdbcDriver"));
}

但是它显示为空值...能否有人帮我解决这个问题。谢谢提前。
3个回答

4

我无法找到任何理由,为什么你需要重写你的init(ServletConfig sc)方法,因为你总是可以通过调用继承的getServletConfig()方法来获取你的ServletConfig

System.out.println(getServletConfig().getInitParameter("jdbcDriver"));

2
如果您有自定义的初始化工作要做,重写没有参数的 init() 方法,并忘记关于 init(ServletConfig)。在 no-arg init() 方法内调用 getServletConfig() 方法是否可以?是的,ServletConfig 的实例已经被超类 GenericServlet 保存了。

http://javahowto.blogspot.com/2006/06/common-mistake-in-servlet-init-methods.html

“使用类的包总是有益的。这样可以实现清晰的分界。”

0

嗯...应该可以工作。 你是否在LoginServlet中调用了代码?

<servlet-class>LoginServlet</servlet-class> 

不在任何软件包中?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接