3

次のコードを使用して、xmlからサーブレットにinit-param値を取得する必要があります

<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"));
}

しかし、null が表示されました。前もって感謝します

4

3 に答える 3

4

継承されたメソッドを呼び出すinit(ServletConfig sc)ことでいつでも取得できるため、メソッドをオーバーライドする必要がある理由は1つもわかりません。ServletConfiggetServletConfig()

System.out.println(getServletConfig().getInitParameter("jdbcDriver"));
于 2011-12-30T19:05:36.400 に答える
2

カスタムの初期化作業を行う場合は、引数なしの init() メソッドをオーバーライドし、init(ServletConfig) のことは忘れてください。引数なしの init() メソッド内で getServletConfig() メソッドを呼び出しても問題ありませんか? はい、ServletConfig のインスタンスはすでにスーパークラス GenericServlet によって保存されています。

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

クラスにパッケージを使用することは常に良いことです。明確な境界を可能にします。

于 2011-12-30T19:56:40.840 に答える
0

うーん...うまくいくはずです。LoginServlet でコードを呼び出していますか? そしてその

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

どのパッケージにもありませんか?

于 2011-12-30T18:46:33.737 に答える