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

时间:2011-12-30 18:35:42

标签: servlets web.xml init-parameters

我需要从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"));
}

但它显示为null ..任何人都可以帮助我做到这一点。 提前谢谢

3 个答案:

答案 0 :(得分:4)

我看不出一个原因,为什么你必须覆盖init(ServletConfig sc)方法,因为你总是可以通过调用你继承的ServletConfig方法获得getServletConfig()

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

答案 1 :(得分:2)

  

如果要进行自定义初始化工作,请覆盖no-arg   init()方法,忘了init(ServletConfig)。可以打电话   no-arg init()方法里面的getServletConfig()方法?是的,一个   ServletConfig的实例已经被超类保存了   GenericServlet类。

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

使用包的类总是好的。它可以实现清晰的划分。

答案 2 :(得分:0)

嗯......应该有用。 你在LoginServlet中调用代码吗?

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

不在任何包裹中?