Как получить значение <servlet><init-param> из файла web.xml в сервлете? - PullRequest
3 голосов
/ 30 декабря 2011

Мне нужно получить значение init-param из xml в сервлет. Я использовал следующий код

<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>

код сервлета

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

Но он отображал ноль ... Может ли кто-нибудь помочь мнесделать это.заранее спасибо

Ответы [ 3 ]

4 голосов
/ 30 декабря 2011

Я не вижу ни одной причины, по которой вам нужно переопределить свой метод init(ServletConfig sc), поскольку вы всегда можете получить свой ServletConfig, вызвав унаследованный метод getServletConfig().

System.out.println(getServletConfig().getInitParameter("jdbcDriver"));
2 голосов
/ 30 декабря 2011

Если вам нужно выполнить пользовательскую инициализацию, переопределите метод no-arg init () и забудьте о init (ServletConfig).Можно ли вызывать метод getServletConfig () внутри метода no-arg init ()?Да, экземпляр ServletConfig уже был сохранен суперклассом GenericServlet.

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

Всегда полезно использовать пакеты для классов.Это позволяет четкое разграничение.

0 голосов
/ 30 декабря 2011

гм ... это должно работать.Вы вызываете код в LoginServlet?А

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

нет ни в одной упаковке?

...